How watchleo/karutaocr works
Karuta Wishlist Evaluator is a Discord client that watches configured channels, detects drop announcements and evaluator analyses, chooses a card, then reacts to the drop message before the claim window expires. The main workflow is coordinated in bot.py; evaluator.py parses card details and ranks candidates, while stealth.py supplies session identity, persistence, and reconnect helpers. The README documents the detection, recovery, selection, and reaction behavior. Some internal calls are not shown in the excerpts, so only documented or evidenced relationships are drawn.
Main entry points: bot.py Discord client · evaluator.py Analysis parser · stealth.py Client identity
Components 13
Drop Monitoring
- Discord client
bot.py - Drop tracking
bot.py - Analysis recovery
bot.py
Evaluation and Grabbing
- Analysis parser
evaluator.py - Card ranking
evaluator.py - Reaction resolution
bot.py - Claim reaction
bot.py
Session Support
- Persistent state
stealth.py - Client identity
stealth.py - Reconnect backoff
stealth.py
Other components
- Operator
- Discord
- Karuta
Connections 12
- Operator → Discord client: configures
README.md - Discord client → Discord: connects to
README.md - Discord → Drop tracking: delivers messages
README.md - Drop tracking → Analysis recovery: tracks drop
README.md - Analysis recovery → Analysis parser: parses analysis
README.md - Analysis parser → Card ranking: provides cards
evaluator.py - Card ranking → Reaction resolution: selects card
README.md - Reaction resolution → Claim reaction: resolves emoji
README.md - Claim reaction → Discord: reacts to message
README.md - Karuta → Discord: posts drops
README.md - Discord client → Client identity: builds profile
bot.py - Discord client → Reconnect backoff: backs off
bot.py