Files
jigaido/apps/telegram-bot
shokollm a06e1327fb feat(/edit): per-argument updates + clear syntax + admin-only
- Add -link and -date flags to /edit command for field clearing
- /edit <id> -link - clear link
- /edit <id> -date - clear date
- /edit <id> -link <url> - set link
- /edit <id> -date <date> - set date
- /edit <id> text -link - update text, clear link
- /edit <id> text <url> - update text and set link
- Parse_args now returns (text, link, due_date_ts, clear_link, clear_date)
- Update usage messages and help text
- Fixes #46
2026-04-04 05:51:56 +00:00
..
2026-04-01 08:05:10 +00:00

Telegram Bot

A Telegram bot for managing and tracking bounties in groups and DMs.

Setup

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)

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)

# 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:

export JIGAIDO_BOT_TOKEN="your:token"
bash deploy/setup.sh

Reminders

Schedule a daily cron job for due date notifications:

# 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 <text> [link] [due> Group Admin Add bounty
/add <text> [link] [due> DM Anyone Add personal bounty
/update <id> [text] [link] [due> Group Admin Update bounty
/delete <id> Group Admin Delete bounty
/track <id> Group / DM Anyone Track a bounty
/untrack <id> Group / DM Anyone Stop tracking
/admin_add <user> Group Creator Promote to admin
/admin_remove <user> Group Creator Demote admin
/start Group / DM Anyone Re-initialize
/help Anywhere Anyone Show help