hotspot/README.md
yumoqing 26721a1b28 feat: initial commit — hotspot radar module for Sage
6 tables (source/schedule/fetch_log/item/analysis/alert)
3 fetch modes (API + Browser + Crawler)
5-dimension analysis + auto status classification
7 stat cards + 6 tab dashboard
2026-08-01 12:01:16 +08:00

93 lines
3.0 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.

# 热点雷达 (Hotspot Radar)
Sage 框架模块 — 指定来源的热点聚合分析平台,支持动态添加来源。
## 功能
- **多类型来源**API / RSS / Browser (HTML抓取) / Crawler (递归爬虫)
- **调度管理**cron 定时 + 间隔模式retry 策略
- **抓取日志**:每次执行一条审计记录(耗时/成功数/错误/HTTP状态码
- **热点分类**5级状态 — emerging → rising → hot → cooling → expired
- **五维分析**:时效 / 热度 / 内容 / 传播 / 受众,每维度 0-100 分
- **预警规则**:热度阈值 / 加速度 / 情感触发email/webhook/sms 通知
## 目录结构
```
hotspot/
├── json/ # Sage 表定义(放入 Sage 的 json/ 目录)
│ ├── hotspot_source.json
│ ├── hotspot_schedule.json
│ ├── hotspot_fetch_log.json
│ ├── hotspot_item.json
│ ├── hotspot_analysis.json
│ └── hotspot_alert.json
├── wwwroot/hotspot/ # Web UI + 后端端点(放入 Sage 的 wwwroot/hotspot/
│ ├── index.ui # 仪表盘7 统计卡片 + 6 标签页)
│ ├── stats.dspy # 统计 API
│ ├── fetch_now.dspy # 抓取引擎3种模式
│ └── analyze.dspy # 分析引擎5维 + 状态分类)
├── ddl/mysql.sql # 建表 SQL
├── install/ # 安装片段
│ ├── load_path_append.txt # 追加到 load_path.py
│ └── menu_append.json # 追加到 menu.ui
└── README.md
```
## 安装
### 1. 复制文件到 Sage 部署目录
```bash
SAGE_ROOT=/path/to/sage
cp json/hotspot_*.json $SAGE_ROOT/json/
cp -r wwwroot/hotspot $SAGE_ROOT/wwwroot/
```
### 2. 建表
```bash
mysql -u user -p sage < ddl/mysql.sql
```
### 3. 注册权限
`load_path.py``"""` 结束符前追加 `install/load_path_append.txt` 的内容,然后运行:
```bash
cd $SAGE_ROOT && python load_path.py
```
### 4. 添加菜单
`wwwroot/menu.ui``items` 数组中追加 `install/menu_append.json` 的内容。
### 5. 重启 Sage
访问 `/hotspot` 即可看到仪表盘。
## 使用流程
1. **来源管理** 标签页 → 添加来源(选择 type: api/rss/browser/crawler
2. **调度配置** 标签页 → 为来源配置抓取频率
3. 仪表盘点击「立即抓取全部来源」
4. **抓取日志** 标签页 → 检查执行结果
5. 点击「执行分析」→ 自动计算五维评分和状态分类
6. **热点条目** 标签页 → 按状态筛选浏览
7. **预警规则** 标签页 → 设置自动告警
## 来源类型说明
| type | 适用场景 | 配置要点 |
|------|---------|---------|
| `rss` | RSS/Atom feed | url 指向 feed 地址 |
| `api` | REST API | url + api_key + headers + fetch_method |
| `browser` | 网页热点列表 | url + browser_wait_selector |
| `crawler` | 递归抓取 | url + crawler_depth + crawler_rules |
## 依赖
- Sage >= 0.0.1
- aiohttp (Python)
- MySQL / MariaDB