How abcliyew/xattiibot works
XatiiBot is a QQ bot whose main workflow is to receive a chat message, recognize a Bilibili link, fetch video/live/dynamic details (including short-link resolution), and reply in chat. Separate workflows manage room subscriptions and scheduled live/dynamic notifications, and provide group check-ins and fortune interactions. Services and MyBatis mappers form the internal data layer for subscriptions, sign-in records, administrators, and runtime configuration. README documents these capabilities; unsampled implementation links are shown only where documented, not inferred as detailed call chains.
Main entry points: PushInfoServiceImpl.java Push scheduling · xatiiBot.db Bot database · BilibiliAnalysisImpl.java Content analysis · BiliBiliPushPlugins.java Subscription commands
Components 22
Link analysis
- Link detection
src/main/java/com/esdllm/botPlugins/BilibiliAnalysisPlugin.java - Content analysis
src/main/java/com/esdllm/service/impl/BilibiliAnalysisImpl.java - Analysis service
src/main/java/com/esdllm/service/BilibiliAnalysis.java
Subscriptions and pushes
- Subscription commands
src/main/java/com/esdllm/botPlugins/BiliBiliPushPlugins.java - Push scheduling
src/main/java/com/esdllm/service/impl/PushInfoServiceImpl.java - Push service contract
src/main/java/com/esdllm/service/PushInfoService.java - Bilibili settings
src/main/java/com/esdllm/botPlugins/BiliConfigPlugins.java - Dynamic rendering
src/main/java/com/esdllm/contant/BiliBiliContant.java
Chat features
- Check-in commands
src/main/java/com/esdllm/botPlugins/SignInPlugins.java - Check-in settlement
src/main/java/com/esdllm/service/impl/SignInRecordsServiceImpl.java - Fortune interaction
src/main/java/com/esdllm/botPlugins/TodayWifePlugins.java
Services and data
- Admin authorization
src/main/java/com/esdllm/common/BotAdminChecker.java - Admin service
src/main/java/com/esdllm/service/impl/AdminServiceImpl.java - Admin mapper
src/main/java/com/esdllm/mapper/AdminMapper.java - Subscription mapper
src/main/java/com/esdllm/mapper/PushInfoMapper.java - Check-in mapper
src/main/java/com/esdllm/mapper/SignInRecordsMapper.java - Runtime configuration
src/main/java/com/esdllm/config/LoadDSConfig.java - Configuration mapper
src/main/java/com/esdllm/mapper/ConfigMapper.java
Other components
- QQ user
- QQ bot platform
- Bilibili platform
- Bot database
resources/xatiiBot.db
Connections 27
- QQ user → QQ bot platform: sends messages
- QQ bot platform → Link detection: dispatches events
- Link detection → Analysis service: requests analysis
- Analysis service → Content analysis: implemented by
- Content analysis → Bilibili platform: fetches content
- Content analysis → QQ bot platform: replies with details
- QQ bot platform → Subscription commands: dispatches commands
- Subscription commands → Push service contract: manages subscriptions
- Push service contract → Push scheduling: implemented by
- Push scheduling → Bilibili platform: fetches live and dynamic data
- Push scheduling → Subscription mapper: reads and updates subscriptions
- Push scheduling → QQ bot platform: sends notifications
- Push scheduling → Dynamic rendering: renders dynamic images
- Bilibili settings → Runtime configuration: updates runtime settings
- Runtime configuration → Configuration mapper: loads configuration
- Configuration mapper → Bot database: reads and writes
- Check-in commands → Check-in settlement: records check-in
- Check-in settlement → Check-in mapper: reads and saves records
- Fortune interaction → QQ bot platform: replies to chat
- Check-in commands → QQ bot platform: replies with status
- Subscription commands → Admin authorization: checks permissions
- Bilibili settings → Admin authorization: checks permissions
- Admin authorization → Admin service: checks allowlist
- Admin service → Admin mapper: queries administrators
- Admin mapper → Bot database: reads administrator records
- Subscription mapper → Bot database: reads and writes
- Check-in mapper → Bot database: reads and writes