Introducing ActivityBot - the simplest way to build Mastodon Bots
As you may have read, BotsIn.Space is closing down, I have lots of automated bot accounts living on the Fediverse - and I want them to continue posting. Installing and maintaining an entire Mastodon instance sounds like hard work. Paying people to host my stuff feels like putting my fate in someone else's hands.
Say… didn't I write my own ActivityPub server? Why, yes! Yes I did!
I took the code and stripped it down to the bare essentials. All you need to do is upload two files0 - index.php
and .htaccess
- fill in your details, and you're done.
Get the ActivityBot source code on GitLab.
There's no database, no containers, no caching. It is as simple as I could make it
This bot can do the following:
- 🔍 Be discovered on the Fediverse
- 👉 Be followed by other accounts
- 🚫 Be unfollowed by accounts
- 📩 Send messages to the Fediverse
- 🖼️ Attach an image & alt text to a message
- 🕸️ Autolink URls, hashtags, and @ mentions
- 🚚 Move followers from an old account
- 🔏 Verify cryptographic signatures
- 🪵 Log sent messages and error.
That's it! Here's what it doesn't do:
- ❌ Receive messages (other than follows and unfollows)
- ❌ Send private messages
- ❌ Thread replies
- ❌ Delete or update a post
- ❌ Create Polls
- ❌ Attach multiple images
- ❌ Set focus point for images
- ❌ Set sensitivity for images / blur
- ❌ Set "Content Warning"
- ❌ Accurate support for converting user's text to HTML
- ❌ Cannot be discovered by Lemmy instances
Grab a subdomain (don't buy a whole new domain name!) and stick this code on it. You'll have an ActivityPub bot running in minutes.
You can follow one of my bots @colours@colours.bots.edent.tel
Feedback very much welcome.
-
You can also upload a
.env
file for your configuration if you want. ↩︎
Skylar MacDonald says:
you can't tell me what to do!
roddie digital says:
This gave me a chuckle
Tomi the Slav and 1024 others said on mastodon.social:
@Edent 🤩
Stefan said on gardenstate.social:
@Edent great work!
Laurens Hof said on fediversereport.com:
Simple bots, updates to Loops, and Flipboard takes over some automated RSS accounts.
Haelwenn /элвэн/ :triskell: says:
@blog From a quick read of the code:
Around https://gitlab.com/edent/activity-bot/-/blob/9fed3dff8b3f02c836a1e48ae02b40c3d74a057d/index.php#L815 Note construction seems to be missing the
cc
field, which is present in theCreate
activity, they need to match.Around https://gitlab.com/edent/activity-bot/-/blob/9fed3dff8b3f02c836a1e48ae02b40c3d74a057d/index.php#L1039 means the mention part of the bot is Mastodon-specific as other servers don't use
https://{$domain}/@{$user}
and also will likely not work properly as it doesn't seems to add their ActivityPub IDs toto
orcc
fields.Might be a better idea to have the bot client mention via raw ActivityPub IDs instead of
@username@domain
since that requires keeping a user database.Haelwenn /элвэн/ :triskell: says:
@blog Also for objects and activities to be valid when fetched they need to have the
content-type: application/activity+json
header.Currently https://colours.bots.edent.tel/posts/6733f30a-1e98-2f5d-95a4-814d541f3970.json returns
application/json
.More comments on Mastodon.