# -*- 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 from .toutiao import ToutiaoChannel from .discord import DiscordChannel ALL_CHANNELS: List[Channel] = [ GitHubChannel(), TwitterChannel(), YouTubeChannel(), RedditChannel(), BilibiliChannel(), XiaoHongShuChannel(), DouyinChannel(), LinkedInChannel(), WeChatChannel(), WeiboChannel(), XiaoyuzhouChannel(), V2EXChannel(), XueqiuChannel(), ToutiaoChannel(), DiscordChannel(), 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", ]