customisable clippy bot for mastodon
Go to file
Hugh Rundle e5728006bc improve error-checking and add username to some responses
Previously clippy was left in an unresponsive state if an authentication error occured, or in some cases if the remote server dropped the connection without sending a close() message. Clippy now terminates the socket connection on every connection error or authentication error, waits 5 seconds, and tries again.

Also added username to the response function, and added a couple of extra responses.
2021-07-09 18:48:15 +10:00
index.js improve error-checking and add username to some responses 2021-07-09 18:48:15 +10:00
LICENSE Initial commit 2021-05-15 14:42:51 +10:00
mastodon-clippy.service.example first code commit 2021-05-15 15:03:59 +10:00
package-lock.json bump ws module 2021-07-09 18:47:50 +10:00
package.json bump ws module 2021-07-09 18:47:50 +10:00
README.md add npm install instructions 2021-05-15 15:25:23 +10:00

mastodon-clippy

A customisable nodejs clippy bot for mastodon.

mastodon-clippy notices when you are tooting about a topic that is bad for your health, and gently suggests you stop.

See an example in action at auspol_clippy.

configuration

mastodon-clippy takes all configuration as ENV variables:

  • CLIPPY_TOPIC is the topic your clippy bot makes suggestions for. e.g. "auspol".
  • CLIPPY_DOMAIN is the base domain for the Mastodon server your bot runs on without a protocol. e.g. "botsin.space"
  • CLIPPY_USER is the username of the bot, e.g. "auspol_clippy".
  • CLIPPY_ACCESS_TOKEN is the API access token for your bot.

auto-config

Some settings for your bot account will be automatically set/overridden whenever the bot starts. These are:

locked: false,
bot: true,
discoverable: true,
source: { privacy: 'private' }

That is, your bot must always:

  • accept new followers
  • declare it is a bot
  • be discoverable on the server suggestions page
  • post messages in "followers only" mode

manual config

It does not appear to be possible to use the API to set accounts to hide their social graph. users should be able to use your bot without other people necessarily knowing, but the bot needs to follow them in order to work. Therefore you should manually select Hide your network in https://example.com/settings/preferences/other.

setup

You can use the example systemd file at mastodon-clippy.service.example tweaked to suit your setup. This will keep the bot running and set your environment variables as above.

Then run npm install . to install npm modules axios and ws.

running

Start the bot with the traditional node index.js.

interacting with the bot

To "sign up" for notification from your bot, users have two options:

  1. follow the bot account
  2. send a toot to the bot with the word START in capital letters. e.g. @auspol_clippy START

To "unsubscribe" from the bot, users can send a toot with the word STOP in capital letters. e.g. @auspol_clippy STOP