Files
vps-management-bot/projects/news-bot/README.md
2026-03-21 01:10:53 +08:00

147 lines
3.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 📰 财经快讯 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` |
---
## 快速部署
### 方法一:直接运行
```bash
# 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
```ini
# /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
```
```bash
sudo systemctl daemon-reload
sudo systemctl enable news-bot
sudo systemctl start news-bot
sudo systemctl status news-bot
```
### 方法三部署到服务器38.76.204.161
```bash
# 上传文件
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 | 重磅/突发 | 🔥 即时推送 |
| 67 | 值得关注 | 🟡 汇总推送 |
| < 6 | 普通资讯 | ❌ 不推送 |
评分依据:关键词权重 + 来源重要性标记 + 规则引擎(无需外部 AI API
---
## 数据文件说明
- `data/settings.json` — 用户配置(关键词、源开关、阈值)
- `data/news.json` — 新闻历史(最近 2000 条)
- `data/pushed.json` — 已推送 ID 集合(防重复,最近 5000 条)