794455cc9f
Discord only returns server metadata (no messages without Bot Token), not useful enough. Toutiao search was fragile (HTML scraping). Both can be revisited when better upstream tools appear. 75 tests passing. Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
66 lines
1.5 KiB
Python
66 lines
1.5 KiB
Python
# -*- coding: utf-8 -*-
|
|
"""
|
|
Channel registry — lists all supported platforms for doctor checks.
|
|
"""
|
|
|
|
from typing import List, Optional
|
|
from .base import Channel
|
|
|
|
# Import all channels
|
|
from .web import WebChannel
|
|
from .github import GitHubChannel
|
|
from .twitter import TwitterChannel
|
|
from .youtube import YouTubeChannel
|
|
from .reddit import RedditChannel
|
|
from .rss import RSSChannel
|
|
from .bilibili import BilibiliChannel
|
|
from .exa_search import ExaSearchChannel
|
|
from .xiaohongshu import XiaoHongShuChannel
|
|
from .douyin import DouyinChannel
|
|
from .linkedin import LinkedInChannel
|
|
from .wechat import WeChatChannel
|
|
from .weibo import WeiboChannel
|
|
from .xiaoyuzhou import XiaoyuzhouChannel
|
|
from .v2ex import V2EXChannel
|
|
from .xueqiu import XueqiuChannel
|
|
|
|
|
|
ALL_CHANNELS: List[Channel] = [
|
|
GitHubChannel(),
|
|
TwitterChannel(),
|
|
YouTubeChannel(),
|
|
RedditChannel(),
|
|
BilibiliChannel(),
|
|
XiaoHongShuChannel(),
|
|
DouyinChannel(),
|
|
LinkedInChannel(),
|
|
WeChatChannel(),
|
|
WeiboChannel(),
|
|
XiaoyuzhouChannel(),
|
|
V2EXChannel(),
|
|
XueqiuChannel(),
|
|
RSSChannel(),
|
|
ExaSearchChannel(),
|
|
WebChannel(),
|
|
]
|
|
|
|
|
|
def get_channel(name: str) -> Optional[Channel]:
|
|
"""Get a channel by name."""
|
|
for ch in ALL_CHANNELS:
|
|
if ch.name == name:
|
|
return ch
|
|
return None
|
|
|
|
|
|
def get_all_channels() -> List[Channel]:
|
|
"""Get all registered channels."""
|
|
return ALL_CHANNELS
|
|
|
|
|
|
__all__ = [
|
|
"Channel",
|
|
"ALL_CHANNELS",
|
|
"get_channel", "get_all_channels",
|
|
]
|