A bot that tracks and auto-deletes statuses on Mastodon/Pleroma accounts after a set time if they are cringe enough
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.
Thor the Norseman 31135bcccb Missing import for traceback module 10 months ago
fedbot@ac336e9492 Use fedbot module instead of bot.py copy 10 months ago
.gitignore Add data store for statuses; rearrange client files 10 months ago
.gitmodules Use fedbot module instead of bot.py copy 10 months ago
LICENSE Added MIT licence 10 months ago
README.md Make OCR support optional; other OCR patches 10 months ago
bogofilter.py Make OCR tokenise by non-whitespace instead of word characters 10 months ago
config.example.toml Defaults for all config options 10 months ago
cringebot.py Missing import for traceback module 10 months ago
cringebot.service Updated config files to reflect new name 10 months ago

README.md

cringebot

cringebot is a bot that tracks and auto-deletes statuses on Mastodon/Pleroma accounts after a set time if they are cringe enough. Multiple accounts across multiple instances are supported.

Installation (Ubuntu Linux)

Download cringebot and make user account

useradd -d /usr/local/lib/cringebot -M -s /bin/bash -U cringebot
sudo -i -u cringebot
git clone https://git.thj.no/thor/cringebot.git

Install dependencies

apt install python3 bogofilter
sudo -i -u cringebot
pip3 install Mastodon.py html2text

Install dependencies (OCR support)

apt install python3 bogofilter tesseract-ocr
sudo -i -u cringebot
pip3 install Mastodon.py html2text PIL

Create configuration

sudo -i -u cringebot
cp config.example.toml config.toml
editor config.toml

Run from command line

sudo -i -u cringebot
python3 cringebot.py

Install systemd service

ln -s /usr/local/lib/cringebot/cringebot.service /etc/systemd/system/cringebot.service
systemctl enable cringebot
systemctl start cringebot

Management

# Restart service
systemctl restart cringebot

# Check service status
systemctl status cringebot

# Monitor log output
journalctl -t cringebot -f

Learning

The bot will respond to each of your statuses with a categorisation status. Reply with cringe and based to teach the bot a categorisation, and unlearn to undo it. When the bot categorises or is taught that a message is cringe, it's scheduled for deletion max_age minutes after it was posted. When it's learned as based, or unlearned, it's removed from the deletion schedule. Some learning parameters can be tuned by changing the constants in bogofilter.py. These will eventually be tunable in config.toml.

Maintainer

The maintainer can be contacted at @thor@pl.thj.no.