""" 新闻源配置 定义各类新闻的 RSS 源 """ # 加密货币新闻源 CRYPTO_NEWS_SOURCES = [ { "name": "Cointelegraph", "url": "https://cointelegraph.com/rss", "category": "crypto", "language": "en", "priority": 1.0, # 权重 "enabled": True }, { "name": "CoinDesk", "url": "https://www.coindesk.com/arc/outboundfeeds/rss/", "category": "crypto", "language": "en", "priority": 1.0, "enabled": True }, { "name": "Decrypt", "url": "https://decrypt.co/feed", "category": "crypto", "language": "en", "priority": 0.9, "enabled": True }, { "name": "The Block", "url": "https://www.theblock.co/rss.xml", "category": "crypto", "language": "en", "priority": 0.9, "enabled": True }, { "name": "律动 BlockBeats", "url": "https://www.theblockbeats.info/feed", "category": "crypto", "language": "zh", "priority": 1.0, "enabled": False # RSS 格式问题,暂时禁用 }, { "name": "巴比特", "url": "https://www.8btc.com/feed", "category": "crypto", "language": "zh", "priority": 0.8, "enabled": False # 连接不稳定,暂时禁用 }, { "name": "CoinGlass", "url": "https://coinglass.com/news/rss", "category": "crypto", "language": "en", "priority": 0.8, "enabled": False # 返回 HTML 而非 RSS,暂时禁用 }, { "name": "CryptoSlate", "url": "https://cryptoslate.com/news/feed", "category": "crypto", "language": "en", "priority": 0.8, "enabled": False # RSS 格式问题,暂时禁用 }, { "name": "AMBCrypto", "url": "https://ambcrypto.com/feed", "category": "crypto", "language": "en", "priority": 0.7, "enabled": True }, { "name": "Whale Alert", "url": "https://whale-alert.io/rss", "category": "crypto", "language": "en", "priority": 0.7, "enabled": False # 大额转账,可选择性开启 }, ] # 股票新闻源 STOCK_NEWS_SOURCES = [ { "name": "Reuters Business", "url": "https://www.reuters.com/finance/rss", "category": "stock", "language": "en", "priority": 1.0, "enabled": False # 返回 HTML 而非 RSS,暂时禁用 }, { "name": "CNBC", "url": "https://www.cnbc.com/id/100003114/device/rss/rss.html", "category": "stock", "language": "en", "priority": 1.0, "enabled": True }, { "name": "Bloomberg Markets", "url": "https://feeds.bloomberg.com/markets/news.rss", "category": "stock", "language": "en", "priority": 1.0, "enabled": True }, { "name": "Yahoo Finance", "url": "https://finance.yahoo.com/news/rssindex", "category": "stock", "language": "en", "priority": 0.8, "enabled": True }, { "name": "MarketWatch", "url": "https://www.marketwatch.com/rss/topstories", "category": "stock", "language": "en", "priority": 0.9, "enabled": True }, { "name": "Seeking Alpha", "url": "https://seekingalpha.com/article/rss", "category": "stock", "language": "en", "priority": 0.9, "enabled": False # RSS 格式问题,暂时禁用 }, { "name": "华尔街见闻", "url": "https://wallstreetcn.com/rss", "category": "stock", "language": "zh", "priority": 0.9, "enabled": False # RSS 格式问题,暂时禁用 }, { "name": "雪球", "url": "https://xueqiu.com/statuses/hot_stock.xml", "category": "stock", "language": "zh", "priority": 0.8, "enabled": False # 需要认证,暂时禁用 }, { "name": "Investing.com", "url": "https://www.investing.com/rss/news.rss", "category": "stock", "language": "en", "priority": 0.8, "enabled": True }, { "name": "Business Insider", "url": "https://markets.businessinsider.com/rss/news", "category": "stock", "language": "en", "priority": 0.7, "enabled": True }, ] # 获取所有启用的新闻源 def get_enabled_sources(category: str = None) -> list: """ 获取启用的新闻源 Args: category: 分类过滤 ('crypto', 'stock', None 表示全部) Returns: 启用的新闻源列表 """ all_sources = CRYPTO_NEWS_SOURCES + STOCK_NEWS_SOURCES if category: return [s for s in all_sources if s['enabled'] and s['category'] == category] return [s for s in all_sources if s['enabled']] # 关键词配置 - 用于第一级过滤 CRYPTO_KEYWORDS = { 'high_impact': [ # 监管相关 'SEC', 'regulation', 'ban', 'approve', 'ETF', 'legal', '监管', '批准', '合法化', '禁令', # 重大事件 'hack', 'exploit', 'bankruptcy', 'acquisition', 'merger', 'blackrock', 'grayscale', 'fidelity', '比特大陆', '币安', # 市场动态 'all-time high', ' ATH ', 'crash', 'surge', 'plunge', '历史新高', '暴跌', '暴涨', '突破', # 技术更新 'upgrade', 'fork', 'airdrop', 'launch', '升级', '分叉', '空投', '上线', # 宏观经济 'fed', 'inflation', 'recession', 'interest rate', '美联储', '通胀', '加息', '降息', ], 'medium_impact': [ 'partnership', 'integration', 'listing', 'delisting', '合作', '上线', '下架', 'whale', 'wallet', 'exchange', ] } STOCK_KEYWORDS = { 'high_impact': [ # 只保留真正重大、罕见的事件 # 破产/退市级别 'bankruptcy', 'delisting', 'fraud', 'scandal', '破产', '退市', '欺诈', '丑闻', # 重大监管事件 'antitrust', 'DOJ ', 'SEC investigation', 'sanction', '反垄断', '司法部', '证监会调查', '制裁', # 超级并购/分拆 'mega merger', 'mega acquisition', 'breakup', 'spinoff', '巨型并购', '分拆', # 重大安全事故/风险 'data breach', 'cyber attack', 'massive layoff', 'shutdown', '数据泄露', '网络攻击', '大规模裁员', '停产', ], 'medium_impact': [ # 财报相关(移到这里,因为太常见) 'earnings', 'revenue', 'profit', 'loss', 'guidance', '财报', '营收', '利润', '业绩预告', 'beat', 'miss', 'surprise', '超预期', '不及预期', # 一般事件 'FDA', 'approval', 'recall', 'lawsuit', 'IPO', '批准', '召回', '诉讼', '上市', # 并购重组(一般规模) 'merger', 'acquisition', 'buyout', '并购', '收购', '重组', # 市场动态 'surge', 'plunge', 'rally', 'crash', '暴涨', '暴跌', '反弹', '崩盘', # 管理层变动 'CEO', 'CFO', 'resign', 'appoint', 'executive', '辞职', '任命', # 评级相关 'upgrade', 'downgrade', 'rating', 'target price', '评级', '目标价', '上调', '下调', 'dividend', 'buyback', 'split', '分红', '回购', '拆股', ] } # 常见的币种和股票代码映射 SYMBOL_MAPPINGS = { # 加密货币 'BTC': ['bitcoin', 'btc', '比特币'], 'ETH': ['ethereum', 'eth', '以太坊'], 'BNB': ['binance', 'bnb', '币安'], 'SOL': ['solana', 'sol'], 'XRP': ['ripple', 'xrp'], 'ADA': ['cardano', 'ada'], 'DOGE': ['dogecoin', 'doge', '狗狗币'], 'AVAX': ['avalanche', 'avax'], 'DOT': ['polkadot', 'dot'], 'MATIC': ['polygon', 'matic'], # 美股 'AAPL': ['apple', 'aapl', '苹果'], 'NVDA': ['nvidia', 'nvda', '英伟达'], 'MSFT': ['microsoft', 'msft', '微软'], 'GOOGL': ['google', 'alphabet', 'googl', '谷歌'], 'AMZN': ['amazon', 'amzn', '亚马逊'], 'TSLA': ['tesla', 'tsla', '特斯拉'], 'META': ['meta', 'facebook', 'meta'], 'BRK.B': ['berkshire', 'buffett', '伯克希尔'], 'JPM': ['jpmorgan', 'jpm', '摩根大通'], }