How rautaruukkipalich/dummy_bot works
Dummy Bot is a Telegram group bot for managing a “pokak” challenge: admins register groups and configure trigger media, members join or leave, messages can record challenge activity, and users can request period statistics and graphs. Admins can also mute members. The sampled application wiring connects Telegram routers to use cases, repositories, and PostgreSQL; README capabilities fill in some unsampled handler details, so uncertain internal calls are omitted.
Main entry points: app.py Application · commands.py Command handlers · uow.py Transaction manager · statistics.py Statistics queries
Components 21
Bot runtime
- Application
dummy_bot/internal/app/app.py - CLI entry
dummy_bot/cmd/main.py - Admin checks
dummy_bot/internal/middleware/admins_mw.py
Bot features
- Command handlers
dummy_bot/internal/presentation/commands.py - Media state handlers
dummy_bot/internal/presentation/states.py - Message handlers
dummy_bot/internal/presentation/text.py - Group and membership
dummy_bot/internal/usecase/commands.py - Trigger media setup
dummy_bot/internal/usecase/media.py - Challenge activity
dummy_bot/internal/usecase/pokak.py - Member muting
dummy_bot/internal/usecase/mute.py
Persistence
- Feature repositories
dummy_bot/internal/repository - Transaction manager
dummy_bot/internal/database/uow/uow.py - PostgreSQL client
dummy_bot/internal/database/postgres/client.py - PostgreSQL
- Redis client
dummy_bot/internal/database/redis/client.py - Redis
Statistics
- Statistics queries
dummy_bot/internal/usecase/statistics.py - Reports and graphs
dummy_bot/internal/utils/stat_report.py - Graph creation
dummy_bot/internal/utils/graph_creator.py
Other components
- Group member
- Telegram
Connections 28
- Group member → Telegram: sends commands
- Telegram → Application: delivers updates
- CLI entry → Application: starts
- Application → Telegram: polls and replies
- Application → Command handlers: wires
- Application → Media state handlers: wires
- Application → Message handlers: wires
- Application → Admin checks: installs
- Admin checks → Redis client: checks cached admins
- Redis client → Redis: reads and writes
- Command handlers → Group and membership: invokes
- Command handlers → Statistics queries: requests stats
- Command handlers → Reports and graphs: formats reports
- Media state handlers → Trigger media setup: invokes
- Message handlers → Challenge activity: records activity
- Message handlers → Member muting: invokes
- Group and membership → Feature repositories: reads and updates
- Trigger media setup → Feature repositories: reads and updates
- Challenge activity → Feature repositories: reads and updates
- Statistics queries → Feature repositories: queries
- Group and membership → Transaction manager: opens transactions
- Trigger media setup → Transaction manager: opens transactions
- Challenge activity → Transaction manager: opens transactions
- Statistics queries → Transaction manager: opens transactions
- Transaction manager → PostgreSQL client: creates sessions
- PostgreSQL client → PostgreSQL: queries
- Statistics queries → Graph creation: creates graphs
- Graph creation → Command handlers: returns graph