# 📰 财经快讯 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 | 重磅/突发 | 🔥 即时推送 |
| 6–7 | 值得关注 | 🟡 汇总推送 |
| < 6 | 普通资讯 | ❌ 不推送 |

评分依据：关键词权重 + 来源重要性标记 + 规则引擎（无需外部 AI API）。

---

## 数据文件说明

- `data/settings.json` — 用户配置（关键词、源开关、阈值）
- `data/news.json` — 新闻历史（最近 2000 条）
- `data/pushed.json` — 已推送 ID 集合（防重复，最近 5000 条）
