How shirokaproject/shirobot.plugin.myparser works
MyParser is a ShiroBot plugin that recognizes links from supported platforms, parses platform content, and sends configured cards, text, and media. The main flow runs from incoming messages through parsing and unified message handling to rendering, downloads, and delivery. Platform capabilities are preserved from the README, including Bilibili multi-part/live/article content, Douyin galleries/comments, music and social providers, and YouTube. Some provider internals are unsampled; those nodes use their exact enclosing directories, and edges are limited to documented behavior or indexed references.
Main entry points: MessageParseCoordinator.cs Parse coordinator · BilibiliParser.cs Bilibili parsing · UnifiedMediaMessageHandler.cs Unified message handler · PluginConfig.cs Runtime configuration
Components 24
Plugin runtime
- Parse coordinator
src/MyParser/Runtime/MessageParseCoordinator.cs - Parse task manager
src/MyParser/Runtime/ParseTaskManager.cs - Provider catalog
src/MyParser/Runtime/ProviderCatalog.cs
Platform providers
- Bilibili parsing
src/MyParser.Provider.BiliBili/Parsing/BilibiliParser.cs - Articles and formats
src/MyParser.Provider.BiliBili/Services/BilibiliArticleParser.cs - Douyin parsing
src/MyParser.Provider.Douyin/Services/DouyinParseService.cs - Douyin comments
src/MyParser.Provider.Douyin/Services/DouyinCommentService.cs - Heybox parsing
src/MyParser.Provider.Heybox/Parsing/HeyboxParser.cs - Music parsing
src/MyParser.Provider.NetEaseCloudMusic/Parsing/NetEaseParser.cs - Channels parsing
src/MyParser.Provider.WeixinChannels/Parsing/WeixinChannelsParser.cs - X parsing
src/MyParser.Provider.X/Parsing/XParser.cs - YouTube parsing
src/MyParser.Provider.YouTube - Platform parsers
src/MyParser.Provider.BiliBili/Parsing
Shared parsing
- URL redirects
src/MyParser.Sharing/Parsing/UrlRedirectResolver.cs - Safe HTTP transport
src/MyParser.Sharing/Parsing/SafeHttpTransport.cs - Runtime configuration
src/MyParser.Sharing/PluginConfig.cs
Message delivery
- Unified message handler
src/MyParser/MessageHandling/UnifiedMediaMessageHandler.cs - Card rendering
src/MyParser/MessageHandling/ProviderMediaCardRenderer.cs - Host services
src/MyParser/ProviderHostServices.cs
Media processing
- Provider downloads
src/MyParser/Downloading/ProviderDownloadService.cs - Runtime cache
src/MyParser.Sharing/Runtime/MyParserRuntime.cs
Other components
- Message sender
- External platforms
- ShiroBot host
Connections 23
- Message sender → Parse coordinator: submits links
README.md - Parse coordinator → Parse task manager: queues parsing
- Parse coordinator → Provider catalog: selects provider
- Bilibili parsing → Articles and formats: delegates articles
src/MyParser.Provider.BiliBili/Parsing/BilibiliParser.cs - Douyin parsing → Douyin comments: fetches comments
src/MyParser.Provider.Douyin/Services/DouyinParseService.cs - Bilibili parsing → External platforms: requests content
- Douyin parsing → External platforms: requests content
- Heybox parsing → External platforms: requests content
- Music parsing → External platforms: requests content
- Channels parsing → External platforms: requests content
- X parsing → External platforms: requests content
- YouTube parsing → External platforms: requests content
- Unified message handler → Card rendering: renders cards
src/MyParser/MessageHandling/UnifiedMediaMessageHandler.cs - Unified message handler → Provider downloads: downloads media
- Unified message handler → Host services: sends results
- Host services → ShiroBot host: delivers messages
- Provider downloads → Runtime cache: uses download cache
src/MyParser/Downloading/ProviderDownloadService.cs - Bilibili parsing → Safe HTTP transport: creates HTTP handler
- Safe HTTP transport → URL redirects: limits redirects
src/MyParser.Sharing/Parsing/SafeHttpTransport.cs - X parsing → Runtime configuration: reads proxy settings
src/MyParser.Provider.X/Parsing/XParser.cs - Parse coordinator → Unified message handler: passes parse results
- Runtime configuration → Bilibili parsing: configures parsing
src/MyParser.Provider.BiliBili/Parsing/BilibiliParser.cs - Runtime configuration → Douyin parsing: configures parsing
src/MyParser.Provider.Douyin/Services/DouyinParseService.cs