Automated anti-loneliness bots for your Pleroma/Mastodon instance
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
Wouter Groeneveld 0c1228dab5
added readme
2 years ago
.yarn/releases first commit! 👏 2 years ago
data mobygames API implementation 2 years ago
src integration mobygames buddy in chat 2 years ago
.gitignore mobygames API implementation 2 years ago
.pnp.js rough work of tooting and ac buddy done 2 years ago
.yarnrc.yml first commit! 👏 2 years ago
README.md added readme 2 years ago
package.json mobygames API implementation 2 years ago
plerobuddies.sublime-project first commit! 👏 2 years ago
screenshot.jpg added readme 2 years ago
yarn.lock rough work of tooting and ac buddy done 2 years ago

README.md

Plerobuddies

Yay! Working examples say more than a 1000 words:

Screenshot from a Pleroma instance

Mastodon/Pleroma Buddies (bots)

Execute through yarn toot or yarn node src/chat.js. It cycles through all configured "buddies" and toots a message accordingly. Use your favorite crontab timestamp to fire off toots automatically.

Creating a new buddy

Create a directory in src/buddies/ and add it to config.js using the same name. Each buddy should have a buddy.js with one exposed method called chat, which gets executed with a config parameter. Look at the examples for more information. End the file with something like module.exports = { chat }.

The function chat should create a "toot", with the following structure:

{
    "toot": "hi there buddy!",
    "attach": [ "file1.jpg", "file2.jpg" ],
    "attachDescription": `Screenshots of game x`
}

An attach and its description are optional. Newlines using \n in a toot are allowed.

Configuring the buddies

See config.sample.js. A config file should expose buddies as an array with the following structure:

{
    name: "buddyname", // same as the dir name
    instance: "https://mastodon.social", // where to post to
    oauthToken: "my-token" // the oauth token for that server/user to post the status  with
}

Optional config flags can be used in the chat function if desired.

How to get an OAuth token from a Masto?Pleroma instance?

I've prepared a few utility functions in registerApp.js for you. First, call await register(), which prints an URL to go to. Next, fill in the client id, secret, and returned token, after granting the app access to read and write. Then, call await fetchToken(). Paste that token in the config file. Done!

Token refreshing is not (yet) implemented. Most tokens are valid for a year or so. Who knows what'll happen then.