How furina-star/league-of-legends-analyst-discord-bot works
Furina is a Discord League of Legends analyst. Users invoke slash commands; draft commands fetch live match and player data, run prediction or scouting, and return Discord responses, while postgame commands analyze completed matches. Account linking and leaderboard tracking use persistent state. The README also documents localization, interactive draft coaching, and help/verdict features. The graph reflects documented capabilities and sampled implementation; some command and startup wiring is unsampled, so uncertain call links are omitted.
Main entry points: stats_commands.py Stats commands · draft_commands.py Draft commands · discord_bot.py Bot startup · database_manager.py Account and stats store
Components 24
Discord experience
- Draft commands
cogs/draft_commands.py - Stats commands
cogs/stats_commands.py - General commands
cogs/general_commands.py - Leaderboard commands
cogs/leaderboard_commands.py - Live tracker
cogs/live_tracker.py - Draft interface
modules/interface/views.py - Bot startup
discord_bot.py
Match analysis
- Riot API client
services/riot_api.py - Draft prediction
services/ai_wrapper.py - Match parsing
modules/utils/parsers.py - Postgame verdicts
modules/persona/roasts.py
Shared services
- Response formatting
modules/interface/embed_formatter.py - Draft rendering
modules/interface/canvas_engine.py - Localization
modules/utils/translator.py - Account and stats store
modules/utils/database_manager.py - Riot response cache
modules/utils/cache.py
Data and integrations
- Prediction assets
data/models/Lol_draft_predictor.safetensors - Game reference data
data/static/Meta_Champions.json - Locale files
data/locale/de.json - Bot state database
modules/utils/database_manager.py
Other components
- Discord user
- Discord platform
- Riot Games API
- Data Dragon
Connections 32
- Discord user → Discord platform: invokes commands
- Discord platform → Bot startup: dispatches events
- Bot startup → Draft commands: loads cog
- Bot startup → Stats commands: loads cog
- Bot startup → General commands: loads cog
- Bot startup → Leaderboard commands: loads cog
- Bot startup → Live tracker: loads cog
- Draft commands → Riot API client: fetches match data
- Draft commands → Draft prediction: requests prediction
- Draft commands → Response formatting: builds responses
- Draft commands → Draft interface: opens coaching UI
- Draft interface → Draft prediction: requests draft advice
- Draft interface → Draft rendering: renders draft board
- Draft commands → Discord platform: sends results
- Stats commands → Riot API client: fetches match data
- Stats commands → Match parsing: extracts stats
- Stats commands → Postgame verdicts: generates verdicts
- Stats commands → Response formatting: builds report
- Stats commands → Account and stats store: records stats
- General commands → Account and stats store: manages linked accounts
- General commands → Stats commands: accesses stats cog
- Leaderboard commands → Account and stats store: reads rankings
- Live tracker → Riot API client: tracks matches
- Live tracker → Account and stats store: updates tracking data
- Riot API client → Riot response cache: reads and writes cache
- Riot API client → Riot Games API: requests player and match data
- Draft prediction → Prediction assets: loads model
- Draft prediction → Game reference data: uses meta data
- Draft prediction → Account and stats store: uses queued training data
- Account and stats store → Bot state database: reads and writes state
- Draft rendering → Data Dragon: fetches champion art
- Localization → Locale files: loads translations