How dream-rainy/dreamrain-bot works
DreamRain-Bot is a NoneBot2/OneBot QQ bot whose main documented workflow is a user sending a music-game command or song image and receiving score, song, or search results. Its principal product branch is chiffon_bot, covering maimai, CHUNITHM, arcade-catalog search, and LXNS account binding. Separate branches provide permissions and entertainment, status, and Princess Connect features. The README documents capabilities beyond the sampled code; their edges are therefore documented at the plugin level rather than asserting uninspected internal call paths.
Main entry points: bootstrap.py Bot runtime · commands Music commands · search Song search · main.py PCR JJC queries
Components 25
Music-game features
- Music commands
src/plugins/chiffon_bot/app/commands - maimai features
src/plugins/chiffon_bot/domains/maimai - CHUNITHM features
src/plugins/chiffon_bot/domains/chunithm - Arcade catalog
src/plugins/chiffon_bot/integrations/lxns/catalog.py - LXNS accounts
src/plugins/chiffon_bot/integrations/lxns/client.py
Music shared services
- Game adapters
src/plugins/chiffon_bot/shared/game/adapter.py - Song search
src/plugins/chiffon_bot/shared/search - Embedding fallback
src/plugins/chiffon_bot/shared/search/embedding_cache.py - Search audit
src/plugins/chiffon_bot/shared/search/search_audit.py - Music configuration
src/plugins/chiffon_bot/config.py
Bot platform
- Bot runtime
src/bootstrap.py - Permission management
src/plugins/permission_admin/core.py - Platform messages
src/plugins/platform_adapter/message.py
Game plugins
- PCR JJC queries
src/plugins/nonebot_plugin_pcrjjc/main.py - PCR API client
src/plugins/nonebot_plugin_pcrjjc/pcrclient.py - PCR HTTP requests
src/plugins/nonebot_plugin_pcrjjc/aiorequests.py - PCR wiki
src/plugins/kanna_note/base.py - Wiki tables
src/plugins/kanna_note/table.py - Princess Connect
src/plugins/priconne - AutoPCR adapter
src/plugins/autopcr/remote.py - AutoPCR config
src/plugins/autopcr/config.py
Other plugins
- Entertainment plugins
src/plugins/nonebot_plugin_fortune - Status images
src/plugins/nonebot_plugin_picstatus - Other bot plugins
src/plugins
Other components
- QQ user
Connections 28
- QQ user → Bot runtime: sends message
README.md - Bot runtime → Music commands: loads plugins
src/bootstrap.py - QQ user → Music commands: uses commands
README.md - Music commands → maimai features: routes maimai
README.md - Music commands → CHUNITHM features: routes CHUNITHM
README.md - Music commands → Arcade catalog: searches catalog
README.md - Music commands → LXNS accounts: binds account
README.md - QQ user → Song search: submits song query
README.md - Song search → Embedding fallback: uses fallback
README.md - Song search → Search audit: audits searches
- Music commands → Game adapters: uses game adapters
- Bot runtime → Permission management: loads plugins
src/bootstrap.py - QQ user → Permission management: manages permissions
README.md - Bot runtime → PCR JJC queries: loads plugins
src/bootstrap.py - QQ user → PCR JJC queries: queries arena
README.md - PCR JJC queries → PCR API client: queries profiles
src/plugins/nonebot_plugin_pcrjjc/main.py - PCR API client → PCR HTTP requests: sends requests
src/plugins/nonebot_plugin_pcrjjc/pcrclient.py - Bot runtime → PCR wiki: loads plugins
src/bootstrap.py - QQ user → PCR wiki: requests wiki data
README.md - PCR wiki → Wiki tables: uses game data
- Bot runtime → Princess Connect: loads plugins
src/bootstrap.py - Bot runtime → AutoPCR adapter: loads plugins
src/bootstrap.py - AutoPCR adapter → AutoPCR config: uses configuration
src/plugins/autopcr/handlers.py - Bot runtime → Entertainment plugins: loads plugins
src/bootstrap.py - QQ user → Entertainment plugins: uses entertainment
README.md - Bot runtime → Status images: loads plugins
src/bootstrap.py - QQ user → Status images: requests status
README.md - Bot runtime → Other bot plugins: loads plugins
src/bootstrap.py