278 lines
7.6 KiB
Python
278 lines
7.6 KiB
Python
"""
|
||
新闻源配置
|
||
定义各类新闻的 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': [
|
||
# 财报相关
|
||
'earnings', 'revenue', 'profit', 'loss', 'guidance',
|
||
'财报', '营收', '利润', '业绩预告',
|
||
|
||
# 重大事件
|
||
'FDA', 'approval', 'recall', 'lawsuit', 'IPO',
|
||
'批准', '召回', '诉讼', '上市',
|
||
|
||
# 并购重组
|
||
'merger', 'acquisition', 'spinoff', 'buyout',
|
||
'并购', '收购', '重组',
|
||
|
||
# 市场动态
|
||
'beat', 'miss', 'surge', 'plunge', 'rally',
|
||
'超预期', '不及预期', '暴涨', '暴跌', '反弹',
|
||
|
||
# 管理层变动
|
||
'CEO', 'CFO', 'resign', 'appoint', 'executive',
|
||
'辞职', '任命', 'CEO',
|
||
],
|
||
'medium_impact': [
|
||
'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', '摩根大通'],
|
||
}
|