# 拉取脚本、参数与输出规范

## 脚本

- 路径：`scripts/fetch_hot_articles.py`
- **禁止**由 Agent 凭空生成榜单；**必须**执行脚本并将 **stdout 原样** 展示给用户（不删、不改、不重排）。

## 接口与字段

- HTTP 路径与请求体字段以 **`references/api-spec.md`** 与脚本实现为准（当前脚本使用 `getWxDataByCategoryAndTime`）。
- 列表数据从返回 JSON 的 **`tenWReadingRank`** 字段读取。

## CLI 参数（与脚本 `--help` 对齐）

| 参数 | 说明 |
|------|------|
| `--type` | 标准分类名，默认 `总排名`；映射见 `references/category-mapping.md` |
| `--start_date` | **必填**；支持 `YYYY-MM-DD`、`yesterday`、`daybeforeyesterday` |
| `--end_date` | **必填**；同上 |
| `--source` | 数据源；**以脚本默认值及 api-spec 为准** |
| `--mode` | `preview`：预览；`full`：全文输出 |
| `--limit` | `preview` 下条数上限，默认 10 |
| `--temp_file` | 写出 JSON 路径，默认 `temp_articles.json` |

## 分类与条数

- 无赛道词 → `--type "总排名"`。
- 标准 23 分类：人文资讯、知识百科、健康养生、时尚潮流、美食餐饮、乐活生活、旅游出行、搞笑幽默、情感心理、体育娱乐、美容美体、文摘精选、民生资讯、财富理财、科技数码、创投商业、汽车交通、房产楼市、职场发展、教育考试、学术研究、企业品牌、总排名。
- **总榜 / 领域**：接口侧均按 SKILL 约定最多取 **TOP50**（以脚本筛选结果为准）。

## 分页（Agent + 脚本配合）

- 首次：`--mode preview --limit 10`。
- 若总数 > 10：脚本统计区会提示「还有 X 条」；用户确认后再 `--mode full`。
- 若总数 ≤ 10：不追问「是否展开」。

## 意图筛选（在脚本已排序结果上）

1. 以 `temp_articles.json` 为候选。
2. 结合用户关键词，优先挑 **最相关** 的条目做首轮展示（preview 仍受 `--limit` 约束）。
3. **禁止凑数、禁止编造**。

## 脚本 stdout 输出顺序

数据说明 → 文章概览表 → 文章详情 → 统计信息。

## 文章概览表（Markdown）

```text
| 序号 | 标题 | 作者 | 阅读数 |
|------|------|------|--------|
| 1 | … | … | 5w+ |
```

## 文章详情（每条）

```text
**序号、[标题](文章链接)**
📄 作者：[作者名称](https://open.weixin.qq.com/qr/code?username=xxx)
👀 阅读数：…
⏰ 发布时间：…
🔍 内容分析：…（一段内包含下述四维）
---
```

## 内容分析四维（每条必须全覆盖，合并为一段）

1. **内容概述**  
2. **热点利用**  
3. **传播作用**  
4. **达成效果**

## 数据说明区固定句

**「10w+阅读爆文推荐将在每日19点30分准时更新昨日文章数据。」**

（若触发「时间不一致」话术，接在说明后，见 `time-and-date-rules.md`。）

## 输出片段示例（正常）

```text
💡 数据说明
10w+阅读爆文推荐将在每日19点30分准时更新昨日文章数据。
------------------------------------------------------------

📊 文章概览
…

📝 文章详情
…

========================================================

共获取到 3 条10w+热门文章数据（已全部展示）
```

## 输出片段示例（条数未展全）

```text
共获取到 X 条10w+热门文章数据，当前展示前 10 条
💡 提示：还有 X 条数据未展示，是否需要全部展示？
```

## 无数据

提示：**「未查询到相关10w+阅读文章数据」**，并引导尝试「总排名」或其它分类列表（见 `usage-examples.md` 示例 5）。
