# Telegram Bot A Telegram bot for managing and tracking bounties in groups and DMs. ## Setup ```bash cd apps/telegram-bot # Install uv (if not already installed) curl -LsSf https://astral.sh/uv/install.sh | sh # Copy and edit environment cp .env.example .env # Add your bot token to .env: JIGAIDO_BOT_TOKEN="your:token" # Install dependencies and run uv sync # creates .venv/, installs deps uv run python bot.py # runs the bot ``` ## Running in Background ### Option 1: tmux (quick, survives SSH disconnect) ```bash tmux new -s jigaido uv run python bot.py # Press Ctrl+B, then D to detach (bot keeps running) // Later: tmux attach -t jigaido ``` ### Option 2: systemd (production, auto-restart, boot on startup) ```bash # Edit the service file paths first nano deploy/jigaido-bot.service # Change /home/shoko/repositories/jigaido to your actual path # Install sudo cp deploy/jigaido-bot.service /etc/systemd/system/ sudo systemctl daemon-reload sudo systemctl enable jigaido-bot sudo systemctl start jigaido-bot # Useful commands: sudo systemctl status jigaido-bot sudo systemctl restart jigaido-bot sudo systemctl stop jigaido-bot journalctl -u jigaido-bot -f # tail logs ``` Or use the automated setup script: ```bash export JIGAIDO_BOT_TOKEN="your:token" bash deploy/setup.sh ``` ## Reminders Schedule a daily cron job for due date notifications: ```bash # crontab -e — run at 9am daily 0 9 * * * cd /path/to/jigaido/apps/telegram-bot && JIGAIDO_BOT_TOKEN="your:token" uv run python cron.py ``` ## Project Structure ``` apps/telegram-bot/ ├── bot.py # Bot entrypoint ├── commands.py # Command handlers ├── cron.py # Daily reminder job ├── db.py # SQLite database wrapper ├── schema.sql # Database schema ├── pyproject.toml # uv project definition ├── .env.example # Environment template ├── deploy/ │ ├── jigaido-bot.service # systemd service │ └── setup.sh # Automated setup script └── tests/ ├── conftest.py # Test fixtures ├── test_db.py # Database tests └── test_commands.py # Command/parsing tests ``` ## Commands | Command | Where | Who | Description | |---|---|---|---| | `/bounty` | Group / DM | Anyone | List all bounties | | `/my` | Group / DM | Anyone | List your tracked bounties | | `/add [link] [due>` | Group | Admin | Add bounty | | `/add [link] [due>` | DM | Anyone | Add personal bounty | | `/update [text] [link] [due>` | Group | Admin | Update bounty | | `/delete ` | Group | Admin | Delete bounty | | `/track ` | Group / DM | Anyone | Track a bounty | | `/untrack ` | Group / DM | Anyone | Stop tracking | | `/admin_add ` | Group | Creator | Promote to admin | | `/admin_remove ` | Group | Creator | Demote admin | | `/start` | Group / DM | Anyone | Re-initialize | | `/help` | Anywhere | Anyone | Show help |