commit a67bc2c33bc0f01387e072fc412976784b14e65b Author: Jared Vititoe Date: Wed Feb 11 00:06:21 2026 -0500 Initial commit: README with project plan and todo list Co-Authored-By: Claude Opus 4.6 diff --git a/README.md b/README.md new file mode 100644 index 0000000..9101bf3 --- /dev/null +++ b/README.md @@ -0,0 +1,78 @@ +# Lotus Matrix Bot + +Matrix bot for the Lotus Guild homeserver (`matrix.lotusguild.org`), built with `matrix-nio`. + +## Status: Planning + +## Todo + +### Core Setup +- [ ] Project scaffolding (`bot.py`, config, `.env`, requirements) +- [ ] matrix-nio async client with E2EE support +- [ ] Device verification / trust storage +- [ ] Logging (rotating file + stdout, matching Discord bot pattern) +- [ ] Config validation (homeserver URL, access token, room IDs) +- [ ] Graceful shutdown and reconnection handling + +### Command Porting (from Discord bot) +- [ ] `!help` - List all available commands +- [ ] `!ping` - Bot latency check +- [ ] `!8ball ` - Magic 8-ball +- [ ] `!fortune` - Fortune cookie message +- [ ] `!flip` - Coin flip +- [ ] `!roll ` - Dice roller +- [ ] `!random ` - Random number generator +- [ ] `!rps ` - Rock Paper Scissors +- [ ] `!poll ` - Poll (using reactions) +- [ ] `!trivia` - Trivia game (using reactions for answers) +- [ ] `!agent` - Random Valorant agent picker +- [ ] `!champion` - Random LoL champion picker +- [ ] `!problem` - Canada geese appreciation + +### Integrations +- [ ] `!minecraft ` - RCON whitelist (Mojang API validation + RCON) +- [ ] `!hytale ` - Hytale whitelist request (audit log to admin room) +- [ ] `!ask ` - Ollama LLM integration (lotusllm model) + +### Media Commands +- [ ] `!kill @user` - Kill GIF +- [ ] `!punch @user` - Punch GIF +- [ ] `!hug @user` - Hug GIF +- [ ] `!revive @user` - Revive GIF +- [ ] Media file management (GIF storage and random selection) + +### Admin Commands +- [ ] `!clear ` - Redact messages (requires power level) +- [ ] `!health` - Bot stats (uptime, command counts, service status) +- [ ] Power level checks (Matrix equivalent of Discord role checks) + +### Audit Logging +- [ ] Member join/leave events +- [ ] Message edits and redactions +- [ ] Room state changes +- [ ] Batched audit log posting to admin room + +### Deployment +- [ ] Systemd service (`matrixbot.service`) +- [ ] Auto-deploy from Gitea webhook (matching Discord bot pattern) +- [ ] Deployment script (`/usr/local/bin/matrix_bot_deploy.sh`) +- [ ] Determine host LXC (new container or colocate with Synapse on 10.10.10.205) + +### Not Porting (Discord-specific) +- Reaction roles (no Matrix equivalent) +- Status cycling (Matrix presence is simpler) +- Guild-specific event handlers (channel create/delete, boost, etc.) + +## Tech Stack +- **Language**: Python 3 +- **Library**: matrix-nio (with E2EE) +- **Homeserver**: matrix.lotusguild.org (Synapse on 10.10.10.205) +- **Dependencies**: matrix-nio[e2ee], aiohttp, python-dotenv, mcrcon + +## Production Server +- **Host**: TBD +- **Bot Directory**: TBD +- **Service**: `matrixbot.service` + +## Gitea +- **Repo**: https://code.lotusguild.org/LotusGuild/matrixBot