3.4 KiB
3.4 KiB
📰 财经快讯 Telegram 机器人
自动抓取金十、华尔街见闻、36氪、新浪财经快讯,AI 评分过滤,推送到 Telegram。
功能特性
- 🔴 重磅即时推送 — 评分 ≥8 立即发送
- 🟡 普通汇总推送 — 评分 6-7,每 N 分钟汇总一条
- 📊 定时总结 — 08:00 / 11:30 / 20:00 三次 AI 总结
- 🔑 关键词过滤 — 自定义关注词,精准推送
- 📡 多源管理 — 一键开关各信息源
- ⚙️ 灵活设置 — 推送阈值、汇总频率均可调节
- 🔄 去重 — 标题相似度 >70% 自动合并
环境变量
| 变量 | 说明 | 必填 |
|---|---|---|
BOT_TOKEN |
Telegram Bot Token(从 @BotFather 获取) | ✅ |
ADMIN_ID |
管理员 Telegram 用户 ID | ❌(默认 165067365) |
DATA_DIR |
数据目录 | ❌(默认 /opt/news-bot/data) |
快速部署
方法一:直接运行
# 1. 进入项目目录
cd /path/to/news-bot
# 2. 安装依赖
pip3 install -r requirements.txt
# 3. 创建数据目录
mkdir -p /opt/news-bot/data
# 4. 启动
export BOT_TOKEN="your_bot_token_here"
export ADMIN_ID="165067365"
python3 bot.py
方法二:systemd 服务(Linux)
# /etc/systemd/system/news-bot.service
[Unit]
Description=Telegram 财经快讯机器人
After=network.target
[Service]
Type=simple
WorkingDirectory=/opt/news-bot
ExecStart=/usr/bin/python3 /opt/news-bot/bot.py
Environment=BOT_TOKEN=your_bot_token_here
Environment=ADMIN_ID=165067365
Environment=DATA_DIR=/opt/news-bot/data
Restart=always
RestartSec=10
StandardOutput=journal
StandardError=journal
[Install]
WantedBy=multi-user.target
sudo systemctl daemon-reload
sudo systemctl enable news-bot
sudo systemctl start news-bot
sudo systemctl status news-bot
方法三:部署到服务器(38.76.204.161)
# 上传文件
scp -r news-bot/ root@38.76.204.161:/opt/news-bot/
# SSH 登录
ssh root@38.76.204.161
# 安装依赖
pip3 install -r /opt/news-bot/requirements.txt
# 创建数据目录
mkdir -p /opt/news-bot/data
# 配置 systemd(见上方),然后启动
systemctl start news-bot
文件结构
news-bot/
├── bot.py # 主入口:Telegram bot + 调度器
├── sources.py # 信息源抓取(金十/华尔街/36氪/新浪)
├── scorer.py # 评分引擎 + 去重
├── storage.py # JSON 数据持久化
├── summarizer.py # 新闻总结生成
├── requirements.txt
├── README.md
└── data/ # 运行时数据(settings.json / news.json / pushed.json)
命令菜单
| 命令 | 功能 |
|---|---|
/start |
欢迎页 + 主菜单按钮 |
/news |
最新快讯(分页浏览) |
/summary |
手动触发总结 |
/sources |
订阅源开关管理 |
/keywords |
关键词添加/删除 |
/settings |
推送阈值/频率设置 |
评分规则
| 分数 | 含义 | 处理 |
|---|---|---|
| ≥ 8 | 重磅/突发 | 🔥 即时推送 |
| 6–7 | 值得关注 | 🟡 汇总推送 |
| < 6 | 普通资讯 | ❌ 不推送 |
评分依据:关键词权重 + 来源重要性标记 + 规则引擎(无需外部 AI API)。
数据文件说明
data/settings.json— 用户配置(关键词、源开关、阈值)data/news.json— 新闻历史(最近 2000 条)data/pushed.json— 已推送 ID 集合(防重复,最近 5000 条)