diff options
| author | Ahmed <git@gumx.cc> | 2026-06-14 01:46:29 +0300 |
|---|---|---|
| committer | Ahmed <git@gumx.cc> | 2026-06-14 01:46:29 +0300 |
| commit | 5a8d568931d9b23ce0df1265d05259a7012081c9 (patch) | |
| tree | 4ea19b8bb1763a38246f342f172c285f6579e09b /README.md | |
init: mostly vibed
Diffstat (limited to 'README.md')
| -rw-r--r-- | README.md | 82 |
1 files changed, 82 insertions, 0 deletions
diff --git a/README.md b/README.md new file mode 100644 index 0000000..e7b6642 --- /dev/null +++ b/README.md @@ -0,0 +1,82 @@ +# irc-bots + +A collection of [Sopel](https://sopel.chat/) IRC bots for self-hosted servers. + +| Bot | Purpose | Doc | +|-----|---------|-----| +| [alfred](alfred/) | Server management, bot control, file hosting, soju bouncer | [docs/alfred.md](docs/alfred.md) | +| [osterman](osterman/) | Channel moderation, auto-modes, idle tracking | [docs/osterman.md](docs/osterman.md) | +| [daffy](daffy/) | Duck hunting game | [docs/daffy.md](docs/daffy.md) | +| [contessa](contessa/) | Recipe suggestions | [docs/contessa.md](docs/contessa.md) | +| [shireen](shireen/) | News headlines and weather | [docs/shireen.md](docs/shireen.md) | +| [daft](daft/) | YouTube playlist manager | [docs/daft.md](docs/daft.md) | +| [herald](herald/) | Owner-follow bot and keyword responder | [docs/herald.md](docs/herald.md) | +| [salvador](salvador/) | Image-to-mIRC-art renderer | [docs/salvador.md](docs/salvador.md) | + +## Requirements + +- Python 3.9+ +- [Sopel](https://sopel.chat/) 8.x + +``` +pip install sopel +``` + +Bot-specific dependencies: + +| Bot | Extra | +|-----|-------| +| alfred | `pip install requests` | +| salvador | `pip install Pillow` | + +All others use only the standard library. + +## Install + +1. Clone or copy this repo. + +2. Copy the example config for the bot you want and fill in your details: + ``` + cp alfred/alfred.cfg ~/.config/sopel/alfred.cfg + $EDITOR ~/.config/sopel/alfred.cfg + ``` + Set `nick`, `host`, `port`, `owner`, and any `[section]` paths. + The `extra` key must point to the bot's directory (e.g. `/path/to/irc-bots/alfred`). + +3. Create any required data directories: + ``` + mkdir -p /var/log/<botname> + # contessa: place recipes.json at the path set in [contessa] recipes_path + # shireen: data.json is created automatically on first run + # osterman: db.json and track.db are created automatically on first run + # daffy: scores.db is created automatically on first run + ``` + +4. Start the bot: + ``` + sopel --config ~/.config/sopel/<botname>.cfg + ``` + +5. (Optional) Register as a service. Example OpenRC init script: + ```sh + #!/sbin/openrc-run + supervisor=supervise-daemon + command="/usr/bin/sopel" + command_args="--config /home/user/.config/sopel/<botname>.cfg" + command_user="user" + output_log="/var/log/<botname>/daemon.log" + error_log="/var/log/<botname>/daemon.log" + depend() { need net; } + ``` + +## Notes + +- All bots use `!` as the command prefix by default (set `prefix` in config). +- All bots share `!join`, `!part`, `!chans`, and `!help` as owner-only admin commands. + When multiple bots are in the same channel and the owner types one of these, all bots act - that's intentional. +- **osterman** uses short-form aliases (`!b`, `!k`, `!v`, etc.) that are unique to it. + No other bot in this collection uses conflicting short forms. + +## License + +MIT - see [LICENSE](LICENSE). |
