Mirror fade + extend code Mastodon group bot which reposts toots
Find a file
2023-05-28 16:26:59 +03:00
services add duplicate protection 2022-09-01 07:31:27 -04:00
.gitignore add logging 2022-08-28 12:37:43 -04:00
bot.go Disable/Enable boosts admin command 2023-05-28 16:26:59 +03:00
cleaning.go bug fix 2022-09-09 01:44:09 -04:00
config.go add notification cleaning 2022-09-08 08:26:25 -04:00
config.json add notification cleaning 2022-09-08 08:26:25 -04:00
limits.go add notification cleaning 2022-09-08 08:26:25 -04:00
logger.go fix logging 2022-09-23 00:42:52 -04:00
main.go bug fix 2022-09-08 14:28:32 -04:00
README.md update readme 2022-11-25 19:06:47 +03:00
utils.go follow check fix 2022-09-22 22:10:13 -04:00

Mastodon group bot

This is a bot which implements group functionality in Mastodon.

Features

  • Repost toots
  • Welcome message of new members
  • Limit of toots per hour
  • Duplicate protection
  • Reply protection (if thread broken)
  • Order limit
  • Notification cleaning
  • Logging
  • Admin commands

Admin commands

  • boost <Toot ID>
  • unboost <Toot ID>
  • delete <Toot ID>

Configuration

The bot is configured in a JSON file that looks like this:

{
    "Server":               "https://example.com",
    "ClientID":             "0000000000000000000000000000000000000000000",
    "ClientSecret":         "0000000000000000000000000000000000000000000",
    "AccessToken":          "0000000000000000000000000000000000000000000",
    "WelcomeMessage":       "We have a new member in our group. Please love and favor",
    "NotFollowedMessage":   "you are not followed",
    "Max_toots":            2,
    "Toots_interval":       12,
    "Duplicate_buf":        10,
    "Order_limit":          1,
    "Del_notices_interval": 30,
    "Admins":               ["admin@example.com"]
}

Building

go mod init mastodon-group-bot
go mod tidy
go build

Setup services

For first make dirs, copy config and binary

mkdir /etc/mastodon-group-bot
mkdir /var/lib/mastodon-group-bot
mkdir /var/log/mastodon-group-bot
chown nobody /var/lib/mastodon-group-bot
chown nobody /var/log/mastodon-group-bot
cp config.json /etc/mastodon-group-bot/config.json
cp mastodon-group-bot /usr/bin/mastodon-group-bot

Systemd

cp ./services/systemd/mastodon-group-bot.service /etc/systemd/system/mastodon-group-bot.service

OpenRC

cp ./services/openrc/mastodon-group-bot /etc/init.d/mastodon-group-bot

Usage

mastodon-group-bot -config <path> -db <path> -log <path>