# tidurak/debilbot architecture

> Architecture diagram of the GitHub repository tidurak/debilbot, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-25). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/tidurak/debilbot
- Repository: https://github.com/tidurak/debilbot

## Overview

DebilBot is a Russian Discord bot whose user workflow begins with a slash or context-menu interaction and returns a command response, media, or an updated server feature. Its documented domains include music playback, economy, reputation, games and fun, moderation, AI chat, and utility commands. The graph follows the runtime registration visible in `main.py` and sampled music, reputation, and AI-session code; links inside unsampled feature cogs are limited to documented capabilities and explicit wiring.

Main entry points: [`main.py`](https://github.com/tidurak/debilbot/blob/master/main.py) (Bot startup), [`cogs/slash/s_economics.py`](https://github.com/tidurak/debilbot/blob/master/cogs/slash/s_economics.py) (Economy commands), [`classes/music/music_player.py`](https://github.com/tidurak/debilbot/blob/master/classes/music/music_player.py) (Music player), [`classes/economics.py`](https://github.com/tidurak/debilbot/blob/master/classes/economics.py) (Economy service)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_runtime["Bot runtime"]
  node_main["Bot startup<br/>[main.py]"]
  node_listeners["Ready listener<br/>[listeners.py]"]
end

subgraph group_commands["Discord commands"]
  node_slash["Slash commands"]
  node_context["Context commands"]
  node_music_commands["Music commands<br/>[s_music.py]"]
  node_economy_commands["Economy commands<br/>[s_economics.py]"]
  node_rep_commands["Reputation commands<br/>[s_reputation.py]"]
  node_rep_context["Reputation context<br/>[c_reputation.py]"]
  node_fun_commands["Fun commands<br/>[s_fun.py]"]
  node_moderation["Moderation commands<br/>[s_moderation.py]"]
  node_utility["Utility commands<br/>[s_information.py]"]
  node_ai_commands["AI chat commands<br/>[s_text.py]"]
end

subgraph group_features["Product features"]
  node_music_player["Music player<br/>[music_player.py]"]
  node_music_queue["Guild queues<br/>[music_manager.py]"]
  node_economy["Economy service<br/>[economics.py]"]
  node_promo["Promo keys<br/>[promo_keys.py]"]
  node_cards["Card inventory<br/>[cards_database.py]"]
  node_reputation["Reputation service<br/>[reputation.py]"]
  node_fun["Games and fun<br/>[games.py]"]
  node_ai_sessions["Chat sessions"]
end

subgraph group_state["Persistent state"]
  node_economy_db[("Economy database<br/>[economics.py]")]
  node_promo_db[("Promo storage<br/>[promo_keys.py]")]
  node_cards_db[("Card database<br/>[cards_database.py]")]
  node_rep_db[("Reputation storage<br/>[reputation.py]")]
end

subgraph group_integrations["External services"]
  node_discord(("Discord platform"))
  node_openrouter(("OpenRouter API"))
  node_youtube(("YouTube search"))
  node_voice(("Discord voice"))
end

node_member(("Discord member"))

node_member -->|"sends interaction"| node_discord
node_discord -->|"starts bot"| node_main
node_main -->|"registers"| node_listeners
node_main -->|"registers"| node_slash
node_main -->|"registers"| node_context
node_discord -->|"dispatches command"| node_slash
node_discord -->|"dispatches context"| node_context
node_main -->|"registers"| node_music_commands
node_main -->|"registers"| node_economy_commands
node_main -->|"registers"| node_rep_commands
node_main -->|"registers"| node_rep_context
node_main -->|"registers"| node_fun_commands
node_main -->|"registers"| node_moderation
node_main -->|"registers"| node_utility
node_main -->|"registers"| node_ai_commands
node_main -->|"initializes"| node_economy
node_main -->|"initializes"| node_promo
node_main -->|"initializes"| node_cards
node_main -->|"initializes"| node_reputation
node_music_commands -->|"calls playback"| node_music_player
node_music_commands -->|"manages queue"| node_music_queue
node_music_player -->|"advances queue"| node_music_queue
node_music_player -->|"searches tracks"| node_youtube
node_music_player -->|"plays audio"| node_voice
node_economy_commands -->|"uses balance"| node_economy
node_economy_commands -->|"uses promo keys"| node_promo
node_economy_commands -->|"uses inventory"| node_cards
node_economy -->|"reads and writes"| node_economy_db
node_promo -->|"reads and writes"| node_promo_db
node_cards -->|"reads and writes"| node_cards_db
node_rep_commands -->|"edits reputation"| node_reputation
node_rep_commands -->|"buys and sells"| node_economy
node_rep_context -->|"edits reputation"| node_reputation
node_reputation -->|"reads and writes"| node_rep_db
node_fun_commands -->|"offers games"| node_fun
node_ai_sessions -->|"sends chat request"| node_openrouter
node_ai_commands -.->|"uses chat"| node_ai_sessions

click node_main "https://github.com/tidurak/debilbot/blob/master/main.py"
click node_listeners "https://github.com/tidurak/debilbot/blob/master/cogs/listeners.py"
click node_slash "https://github.com/tidurak/debilbot/tree/master/cogs/slash"
click node_context "https://github.com/tidurak/debilbot/tree/master/cogs/context_menu"
click node_music_commands "https://github.com/tidurak/debilbot/blob/master/cogs/slash/s_music.py"
click node_music_player "https://github.com/tidurak/debilbot/blob/master/classes/music/music_player.py"
click node_music_queue "https://github.com/tidurak/debilbot/blob/master/classes/music/music_manager.py"
click node_economy_commands "https://github.com/tidurak/debilbot/blob/master/cogs/slash/s_economics.py"
click node_economy "https://github.com/tidurak/debilbot/blob/master/classes/economics.py"
click node_promo "https://github.com/tidurak/debilbot/blob/master/classes/promo_keys.py"
click node_cards "https://github.com/tidurak/debilbot/blob/master/classes/cards_database.py"
click node_economy_db "https://github.com/tidurak/debilbot/blob/master/classes/economics.py"
click node_promo_db "https://github.com/tidurak/debilbot/blob/master/classes/promo_keys.py"
click node_cards_db "https://github.com/tidurak/debilbot/blob/master/classes/cards_database.py"
click node_rep_commands "https://github.com/tidurak/debilbot/blob/master/cogs/slash/s_reputation.py"
click node_rep_context "https://github.com/tidurak/debilbot/blob/master/cogs/context_menu/c_reputation.py"
click node_reputation "https://github.com/tidurak/debilbot/blob/master/classes/reputation.py"
click node_rep_db "https://github.com/tidurak/debilbot/blob/master/classes/reputation.py"
click node_fun "https://github.com/tidurak/debilbot/blob/master/classes/games.py"
click node_fun_commands "https://github.com/tidurak/debilbot/blob/master/cogs/slash/s_fun.py"
click node_moderation "https://github.com/tidurak/debilbot/blob/master/cogs/slash/s_moderation.py"
click node_utility "https://github.com/tidurak/debilbot/blob/master/cogs/slash/s_information.py"
click node_ai_commands "https://github.com/tidurak/debilbot/blob/master/cogs/slash/s_text.py"
click node_ai_sessions "https://github.com/tidurak/debilbot/blob/master/classes/openrouter_chat_sessions.py"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_main,node_listeners toneBlue
class node_slash,node_context,node_music_commands,node_economy_commands,node_rep_commands,node_rep_context,node_fun_commands,node_moderation,node_utility,node_ai_commands toneAmber
class node_music_player,node_music_queue,node_economy,node_promo,node_cards,node_reputation,node_fun,node_ai_sessions toneMint
class node_economy_db,node_promo_db,node_cards_db,node_rep_db toneRose
class node_discord,node_openrouter,node_youtube,node_voice,node_member toneIndigo
```

## Components

### Bot runtime

- [Bot startup](https://github.com/tidurak/debilbot/blob/master/main.py): `main.py`
- [Ready listener](https://github.com/tidurak/debilbot/blob/master/cogs/listeners.py): `cogs/listeners.py`

### Discord commands

- [Slash commands](https://github.com/tidurak/debilbot/tree/master/cogs/slash): `cogs/slash`
- [Context commands](https://github.com/tidurak/debilbot/tree/master/cogs/context_menu): `cogs/context_menu`
- [Music commands](https://github.com/tidurak/debilbot/blob/master/cogs/slash/s_music.py): `cogs/slash/s_music.py`
- [Economy commands](https://github.com/tidurak/debilbot/blob/master/cogs/slash/s_economics.py): `cogs/slash/s_economics.py`
- [Reputation commands](https://github.com/tidurak/debilbot/blob/master/cogs/slash/s_reputation.py): `cogs/slash/s_reputation.py`
- [Reputation context](https://github.com/tidurak/debilbot/blob/master/cogs/context_menu/c_reputation.py): `cogs/context_menu/c_reputation.py`
- [Fun commands](https://github.com/tidurak/debilbot/blob/master/cogs/slash/s_fun.py): `cogs/slash/s_fun.py`
- [Moderation commands](https://github.com/tidurak/debilbot/blob/master/cogs/slash/s_moderation.py): `cogs/slash/s_moderation.py`
- [Utility commands](https://github.com/tidurak/debilbot/blob/master/cogs/slash/s_information.py): `cogs/slash/s_information.py`
- [AI chat commands](https://github.com/tidurak/debilbot/blob/master/cogs/slash/s_text.py): `cogs/slash/s_text.py`

### Product features

- [Music player](https://github.com/tidurak/debilbot/blob/master/classes/music/music_player.py): `classes/music/music_player.py`
- [Guild queues](https://github.com/tidurak/debilbot/blob/master/classes/music/music_manager.py): `classes/music/music_manager.py`
- [Economy service](https://github.com/tidurak/debilbot/blob/master/classes/economics.py): `classes/economics.py`
- [Promo keys](https://github.com/tidurak/debilbot/blob/master/classes/promo_keys.py): `classes/promo_keys.py`
- [Card inventory](https://github.com/tidurak/debilbot/blob/master/classes/cards_database.py): `classes/cards_database.py`
- [Reputation service](https://github.com/tidurak/debilbot/blob/master/classes/reputation.py): `classes/reputation.py`
- [Games and fun](https://github.com/tidurak/debilbot/blob/master/classes/games.py): `classes/games.py`
- [Chat sessions](https://github.com/tidurak/debilbot/blob/master/classes/openrouter_chat_sessions.py): `classes/openrouter_chat_sessions.py`

### Persistent state

- [Economy database](https://github.com/tidurak/debilbot/blob/master/classes/economics.py): `classes/economics.py`
- [Promo storage](https://github.com/tidurak/debilbot/blob/master/classes/promo_keys.py): `classes/promo_keys.py`
- [Card database](https://github.com/tidurak/debilbot/blob/master/classes/cards_database.py): `classes/cards_database.py`
- [Reputation storage](https://github.com/tidurak/debilbot/blob/master/classes/reputation.py): `classes/reputation.py`

### External services

- **Discord platform**
- **OpenRouter API**
- **YouTube search**
- **Discord voice**

### Other components

- **Discord member**

## Connections

- Discord member → Discord platform: sends interaction
- Discord platform → Bot startup: starts bot
- Bot startup → Ready listener: registers
- Bot startup → Slash commands: registers
- Bot startup → Context commands: registers
- Discord platform → Slash commands: dispatches command
- Discord platform → Context commands: dispatches context
- Bot startup → Music commands: registers
- Bot startup → Economy commands: registers
- Bot startup → Reputation commands: registers
- Bot startup → Reputation context: registers
- Bot startup → Fun commands: registers
- Bot startup → Moderation commands: registers
- Bot startup → Utility commands: registers
- Bot startup → AI chat commands: registers
- Bot startup → Economy service: initializes
- Bot startup → Promo keys: initializes
- Bot startup → Card inventory: initializes
- Bot startup → Reputation service: initializes
- Music commands → Music player: calls playback
- Music commands → Guild queues: manages queue
- Music player → Guild queues: advances queue
- Music player → YouTube search: searches tracks
- Music player → Discord voice: plays audio
- Economy commands → Economy service: uses balance
- Economy commands → Promo keys: uses promo keys
- Economy commands → Card inventory: uses inventory
- Economy service → Economy database: reads and writes
- Promo keys → Promo storage: reads and writes
- Card inventory → Card database: reads and writes
- Reputation commands → Reputation service: edits reputation
- Reputation commands → Economy service: buys and sells
- Reputation context → Reputation service: edits reputation
- Reputation service → Reputation storage: reads and writes
- Fun commands → Games and fun: offers games
- Chat sessions → OpenRouter API: sends chat request
- AI chat commands → Chat sessions: uses chat
