git:20260527.20d0351 to git:20260602.08c4de8

179 added, 311 removed. Audit A to A.

---
name: wechat-original-hot
description: 全网持续收录每日公众号原创热门文章内容,向用户推送公众号原创热门文章;当用户需要获取全领域的公众号原创热门文章、或订阅每日原创热门文章推送时使用
---
# 公众号热门原创文章
- ## 任务目标
-
- - **本Skill必须调用脚本获取数据,禁止AI自行生成任何内容。未调用脚本=功能失效。**
- - 本Skill用于:获取公众号原创爆款文章
- - 能力包含:爆文数据获取、分类查询、日期查询、HTML页面生成、PDF导出
- - 触发条件:"原创爆文"、"爆文推荐"、"今日爆文"等词语
- - **核心功能**:主要推送原创爆文文章,支持按分类和日期筛选,末尾询问用户是否需要查看更多或订阅每日推送
- - **默认查询时间**:当用户提到"最近"、"最新"等无明确时间说法时,默认查询过去7天数据
- - **文章数量提示**:当文章少于10篇时,提示"xx赛道10w+文章较少,您可以拓展过去30天或者看看综合10w+文章~"
- - **输出规范**:
- 1. 对话文本输出:完整榜单数据(**必须展示所有文章,禁止截断或省略**)
- 2. HTML文件输出:对话输出完成后生成HTML(用于可视化展示和PDF导出)
- - **执行顺序**:先完成对话中的完整文章输出 → 再生成HTML文件
- - **禁止行为**:禁止自行生成文章内容、写作建议、爆文规律分析,本Skill只输出榜单数据
-
- ## 启动提示
-
- - Skill加载后,提示用户:"技能已加载完成。是否为您推送最新的原创爆款文章?"
-
- ## 视觉规范(重要)
-
- 生成HTML页面时,必须遵循以下样式规范:
-
- **主题色调**:
-
- - 主色:`rgb(0, 179, 84)`(微信绿)
- - 辅助色:`#0088ff`(阅读数、用户名称蓝色)
- - 背景色:`#fff`(纯白)
+ ## 1. 简介
- **布局结构**:
+ **一句话定位**:公众号原创爆文推荐工具,全网持续收录每日公众号原创热门文章,支持按分类和日期筛选,提供HTML可视化报告和每日订阅推送。
- - 序号(🥇🥈🥉/数字)放在标题左边
- - 用户、类型、阅读数、发布时间四项目之间用浅灰色竖线分隔 `|`
- - 竖线高度缩短一半,垂直居中对齐
- - 阅读量排序标签 + 导出PDF按钮 放在标题右侧
- - **头部不含"爆款研究院"等品牌标签**,保持简洁
+ **核心价值**:
+ - **聚焦原创**:专注收录公众号原创爆款文章,区别于转载/洗稿内容
+ - **灵活查询**:支持分类查询、日期查询、时间范围查询等多种方式
+ - **完整数据输出**:对话中逐条展示所有文章,禁止截断省略
- **图标规范**:
+ **适用对象**:公众号内容创作者、原创写手、爆文研究者、自媒体运营。
- - 用户图标:`👤`(无背景)
- - 阅读数图标:`📖`
+ **重要提示**:本Skill必须调用脚本获取数据,禁止AI自行生成任何内容。
- **元素样式**:
+ ## 2. 功能特性
- - 用户名称:`#0088ff`,可点击跳转公众号名片(链接:`https://open.weixin.qq.com/qr/code?username={accountId}`)
- - 阅读数:`#0088ff`
- - 爆款分析区块:无左边框,纯白背景 + 浅绿底色
+ ### 核心功能
- **PDF导出**:
+ | 功能模块 | 能力描述 | 核心价值 |
+ |----------|----------|----------|
+ | 📊 原创爆文榜单 | 获取公众号原创热门文章TOP50 | 专注原创内容,洞察创作趋势 |
+ | 🏷️ 分类筛选 | 23个标准分类独立查询 | 精准定位垂直领域原创爆文 |
+ | 📅 日期回溯 | 支持指定日期查询,默认回溯30天 | 灵活查询历史数据 |
+ | 🎨 HTML可视化报告 | 微信绿主题设计,支持PDF导出 | 便于分享存档和数据汇报 |
+ | ⏰ 订阅推送 | 每日19:30定时推送 | 持续追踪原创爆文动态 |
- - 使用 html2pdf.js 生成
- - 按钮位于标题右侧,紧邻阅读量排序标签
- - 按钮样式:蓝色渐变背景,白色文字,12px字号
- - **自适应单页模式**:PDF尺寸根据内容实际大小自动调整,所有内容在一页完整展示,禁用分页分割
- - PDF配置要点:`pagebreak: { mode: 'none' }`、`margin: 0`、根据内容高度/宽度计算纸张尺寸、添加 `page-break-inside: avoid` 样式
+ ### 特色亮点
- ## 前置准备
+ - **强制脚本调用**:禁止AI自行生成内容,确保数据真实性
+ - **逐条完整展示**:limit=20就必须逐条输出全部20条,严禁截断或省略
+ - **智能时间判断**:根据数据同步时间(19:30)自动计算正确查询区间
+ - **分类泛化匹配**:支持模糊关键词自动匹配到23个标准分类
- - 依赖说明:Python标准库(json、argparse、os、sys、urllib、ssl),无需额外安装
- - API说明:调用公众号原创爆款文章API,使用原生 urllib.request + ssl(verify=False)发起 POST 请求
+ ## 3. 一键安装
### 鉴权
#### 获取 API Key
请前往 [红狐hub](https://redfox.hk/settings/api-keys?source=github) 获取API KEY
#### 配置 API Key
方案1: 以OpenClaw为例,将REDFOX_API_KEY添加到~/.openclaw/openclaw.json中,部分内容如下:
```bash
{ "env": { "REDFOX_API_KEY": "ak_xxxx..." } }
```
- 方案2: 终端配置
+ 方案2: 终端配置:
```bash
export REDFOX_API_KEY="ak_xxxx..."
```
- ## 数据时间说明
+ ### 依赖安装
- - **数据同步时间**:每日19:30同步
- - **同步数据范围**:前一天(T-1)的数据
- - **查询数据范围**:
- - 当前时间 < 19:30:查询 T-2 数据(前天)
- - 当前时间 >= 19:30:查询 T-1 数据(昨天)
- - **输出标注**:数据更新时间=T-1日期,查询数据日期=T-2日期
- - **默认查询时间**:当用户提到"最近"、"最新"等无明确时间说法时,默认查询过去7天
+ 无需额外安装,脚本使用Python标准库(json、argparse、os、sys、urllib、ssl)。
- ## 操作步骤
+ ### 环境变量配置
- ### 1. 用户意图识别(智能体处理)
+ | 变量名 | 说明 | 必填 |
+ |--------|------|------|
+ | `REDFOX_API_KEY` | 红狐 API Key | 是 |
- 智能体首先识别用户输入的意图类型:
+ ## 4. 使用指南
- - **分类查询**:用户输入具体分类(如"科技"、"健康养生"、"财经"等)
- → 匹配分类,输出该分类 Top20
- → 参考 [分类映射表](references/category_mapping.md) 进行分类匹配
+ ### 基础使用
- - **日期查询**:用户输入具体日期(如"5月3日的原创爆款"、"昨日爆文")
- → 输出指定日期的爆文Top20
+ #### 启动提示
- - **时间范围查询**:用户输入"最近"、"最新"等无明确时间说法
- → 默认查询过去7天的数据,输出Top20
+ Skill 加载后提示用户:「技能已加载完成。是否为您推送最新的原创爆款文章?」
- - **直接查询**:用户输入类似以下词语:
- - "今日爆文"、"今日原创文章"、"原创文章"
- - "最新爆文"、"爆文推荐"、"原创爆文"
- - "热门爆文"、"每日爆文"、"爆文榜单"
- → 输出最新原创爆款文章 Top20
+ #### 查询总榜原创爆文
- - **模糊输入**:用户输入不明确
- → 直接推送今日原创热门文章
+ ```bash
+ python scripts/fetch_articles.py --type "总排名" --limit 20
+ ```
- ### 2. 获取爆文数据(脚本执行,必须调用脚本并将输出原样展示给用户)
+ 或不传 `--type`,默认为"总排名"。输出最新原创爆款文章Top20。
- **【强制】无论用户怎么输入,智能体必须先调用fetch_articles.py获取数据,然后原样展示。没有调用脚本的输出一律视为无效。**
+ #### 分类查询
- 调用 `scripts/fetch_articles.py` 获取爆款内容数据
+ ```bash
+ python scripts/fetch_articles.py --type "科技数码" --limit 20
+ ```
- **【核心输出规则】**:
+ 分类名称从用户输入中匹配,参考 [分类映射表](references/category_mapping.md)。
- - **必须调用脚本**:智能体必须调用fetch_articles.py脚本,不能自己生成文章内容
- - **禁止输出脚本文件路径或代码**:智能体不得向用户展示任何脚本路径、代码内容或执行命令
- - **必须原样展示脚本输出**:智能体必须将脚本的stdout输出内容原样展示给用户,不得省略、修改、重新格式化或隐藏任何部分
- - **【关键】禁止截断或省略**:脚本输出多少条文章,对话中就必须展示多少条。如 limit=20 就必须输出全部 20 条,**严禁使用"..."、省略号、或只展示前 N 条**。每一条文章的序号、作者、标题、阅读数都必须完整展示
- - **禁止修改数据**:不得修改、重新格式化、美化或隐藏脚本输出的任何部分
- - **禁止自行生成数据**:不得使用输出示例中的数据,必须使用脚本实际返回的数据
- - **脚本输出即最终输出**:脚本输出的内容(数据说明、原创爆文推荐表格、询问用户是否看剩余内容、询问订阅)就是展示给用户的最终内容,智能体不需要再做任何处理
- - **【重要】询问部分不可省略**:脚本输出的最后部分"共获取到XX条..."和订阅服务必须完整展示,不得省略
+ #### 日期查询
- **【强制执行步骤 — 防止文章丢失】**:
+ ```bash
+ python scripts/fetch_articles.py --type "总排名" --start_date "2026-05-03" --limit 20
+ ```
- 1. 执行 fetch_articles.py 后,脚本 stdout 中的「表格部分」(从 `| 序号 | 作者 | 标题 | 阅读数 |` 开始到订阅服务之前的所有行)**必须逐行完整复制到对话回复中**,一行都不能少
- 2. **严禁使用以下话术代替实际数据**:「如上完整展示」「详见上方」「参考脚本输出」「已展示完毕」等 — 这些都是文章丢失的直接原因
- 3. **第2步的对话回复是文章的唯一展示窗口**,如果这一步没有逐条输出文章,文章就永远丢失了(HTML 只是辅助文件,不能替代对话输出)
- 4. 生成 HTML 之前必须自检:对话中显示的表格行数是否等于 --limit 参数值?不等于则**禁止生成 HTML**,先补上缺失的文章
+ 脚本会自动计算 `endDate` = `startDate` + 1天。
- **接口信息**:
+ ### 高级使用
+ #### 用户意图识别
+
+ 智能体首先识别用户意图类型:
+
+ | 意图类型 | 触发词 | 处理方式 |
+ |----------|--------|----------|
+ | 直接查询 | "今日爆文"、"原创爆文"、"最新爆文" | 输出最新原创爆款Top20 |
+ | 分类查询 | "科技"、"健康养生"、"财经" | 匹配分类,输出该分类Top20 |
+ | 日期查询 | "5月3日的原创爆款"、"昨日爆文" | 输出指定日期爆文Top20 |
+ | 时间范围 | "最近"、"最新"(无明确时间) | 默认查询过去7天,输出Top20 |
+ | 模糊输入 | 输入不明确 | 直接推送今日原创热门文章 |
+
+ #### 数据时间说明
+
+ - **数据同步时间**:每日 19:30 同步
+ - **同步数据范围**:前一天(T-1)的数据
+ - **查询数据范围**:
+ - 当前时间 < 19:30:查询 T-2 数据(前天)
+ - 当前时间 >= 19:30:查询 T-1 数据(昨天)
+ - **默认查询时间**:用户提到"最近"、"最新"等无明确时间说法时,默认查询过去7天
+
+ #### 接口信息
+
- 接口URL:`https://redfox.hk/story/api/cozeSkill/getWxDataByCategoryAndTime`
- 请求方式:POST(JSON body)
- 认证方式:X-API-KEY header,值从 `REDFOX_API_KEY` 环境变量获取
- 参数:
- `type`:分类名称(如"科技数码"、"总排名"等)
- `startDate`:开始日期(YYYY-MM-DD格式)
- `endDate`:结束日期(YYYY-MM-DD格式)
- `source`:"公众号文章原创之王"(固定值)
- **脚本调用方式**(智能体内部执行,用户不可见):
-
- **分类查询**:
-
- ```bash
- python scripts/fetch_articles.py --type "科技数码" --limit 20
- ```
-
- - `--type`:从用户输入中匹配的分类名称(参考分类映射表)
- - 如用户输入"科技类原创爆款",智能体匹配到"科技数码",传入`--type "科技数码"`
-
- **总榜查询**:
-
- ```bash
- python scripts/fetch_articles.py --type "总排名" --limit 20
- ```
-
- - 或不传 `--type`,默认为"总排名"
-
- **日期查询**:
-
- ```bash
- python scripts/fetch_articles.py --type "总排名" --start_date "2026-05-03" --limit 20
- ```
-
- - `--start_date`:用户指定的日期(YYYY-MM-DD格式)
- - 脚本会自动计算 `endDate` = `startDate` + 1天
-
- **时间参数说明**:
+ #### 核心输出规则(必须遵守)
- - 用户未指定日期时,脚本根据当前时间自动判断:
- - 当前时间 < 18:30:查询 T-2 数据(前天)
- - 当前时间 >= 18:30:查询 T-1 数据(昨天)
- - 用户指定日期时,使用用户指定的日期
+ - **必须调用脚本**:智能体必须调用 `fetch_articles.py` 脚本,不能自己生成文章内容
+ - **禁止输出脚本路径或代码**:智能体不得向用户展示任何脚本路径、代码内容或执行命令
+ - **必须原样展示脚本输出**:脚本stdout输出内容原样展示,不得省略、修改、重新格式化
+ - **禁止截断或省略**:`limit=20` 就必须逐条输出全部20条,严禁使用"..."只展示前N条
+ - **禁止修改数据**:不得修改、重新格式化、美化或隐藏脚本输出的任何部分
+ - **脚本输出即最终输出**:脚本输出内容就是展示给用户的最终内容
+ - **询问部分不可省略**:脚本输出的"共获取到XX条..."和订阅服务必须完整展示
- **【输出格式】**
+ #### 输出格式
- **文章概览表格**:输出Markdown表格,包含序号、作者、标题、阅读数四列,作者和标题包含链接
+ **文章概览表格**:
- ```
+ ```markdown
| 序号 | 作者 | 标题 | 阅读数 |
|------|------|------|--------|
| 1 | [夜听](https://open.weixin.qq.com/qr/code?username=yetingfm) | [【夜听】有一种感情,叫不再联系](https://mp.weixin.qq.com/s?...) | 10w+ |
- | 2 | [罗辑思维](https://open.weixin.qq.com/qr/code?username=luojisw) | [李璞:普通人如何实现财务自由?](https://mp.weixin.qq.com/s?...) | 10w+ |
```
- **输出示例**(仅展示格式,实际数据以脚本返回为准):
-
- **最新一期数据**:
+ **输出示例(最新一期数据,时间不一致需提示)**:
- ```
+ ```markdown
💡 数据说明
公众号原创文章推荐将在每日19点30分准时更新昨日文章数据,以下数据为获取时间时的快照,和实时数据有所差别。
非常抱歉🙏,最新的是前天的数据,我将为您查询最接近您需求的2026年05月12日原创文章。
📊 原创爆文推荐
最近30天的原创爆款文章
| 序号 | 作者 | 标题 | 阅读数 |
|------|------|------|--------|
| 1 | [作者A](链接) | [文章标题](链接) | 10w+ |
...
导出功能:输出生成HTML榜单页面,表格内容支持导出 PDF 格式,自动生成并打开
共获取到50条爆款原创热门文章,当前展示前20条。
📬 订阅服务
是否需要订阅具体赛道的账号表现?我们支持:
人文资讯、知识百科、健康养生、时尚潮流、美食餐饮、乐活生活、旅游出行、搞笑幽默、情感心理、体育娱乐、美容美体、文摘精选、民生资讯、财富理财、科技数码、创投商业、汽车交通、房产楼市、职场发展、教育考试、学术研究、企业品牌、总排名
订阅推送 — 每天19点30分推送最新公众号原创文章
暂不需要 — 仅本次查询
```
- **指定日期查询**(日期在有效范围内):
-
- ```
- 💡 数据说明
- 公众号原创文章推荐将在每日19点30分准时更新昨日文章数据,以下数据为获取时间时的快照,和实时数据有所差别。
-
- 📊 原创爆文推荐
- 2026年05月03日当天的原创爆款文章
-
- | 序号 | 作者 | 标题 | 阅读数 |
- |------|------|------|--------|
- | 1 | [作者A](链接) | [文章标题](链接) | 10w+ |
- ...
- ```
-
- **用户查询"今日爆款"**(今日数据未更新):
-
- ```
- 💡 数据说明
- 公众号原创文章推荐将在每日19点30分准时更新昨日文章数据,以下数据为获取时间时的快照,和实时数据有所差别。
-
- 非常抱歉🙏,最新的是前天的数据,我将为您查询最接近您需求的2026年05月12日原创文章。
+ #### 时间不一致提示规则
- 📊 原创爆文推荐
- 2026年05月12日当天的原创爆款文章
+ 只要数据查询日期和用户询问日期不一致,就必须在数据说明后显示提示信息:
- | 序号 | 作者 | 标题 | 阅读数 |
- |------|------|------|--------|
- | 1 | [作者A](链接) | [文章标题](链接) | 10w+ |
- ...
- ```
+ - 查询日期 > 最新日期:`非常抱歉🙏,最新的是{查询日期}的数据,我将为您查询最接近您需求的{查询日期}原创文章。`
+ - 查询日期 < 回溯日期:`非常抱歉🙏,目前最多支持回溯「过去30天」(最早至{回溯日期}),我将为您查询最接近您需求的时间范围~`
- **用户查询"最近7天"**(查询时间范围超出最新数据):
+ #### 查询"最近7天"(查询范围超出最新数据)
- ```
+ ```markdown
💡 数据说明
公众号原创文章推荐将在每日19点30分准时更新昨日文章数据,以下数据为获取时间时的快照,和实时数据有所差别。
非常抱歉🙏,最新的是前天的数据,我将为您查询最接近您需求的时间范围。
📊 原创爆文推荐
2026年05月06日至2026年05月12日的原创爆款文章
-
- | 序号 | 作者 | 标题 | 阅读数 |
- |------|------|------|--------|
- | 1 | [作者A](链接) | [文章标题](链接) | 10w+ |
- ...
```
- **特殊情况 - 用户查询时间早于回溯日期**:
-
- ```
- 💡 数据说明
- 公众号原创文章推荐将在每日19点30分准时更新昨日文章数据,以下数据为获取时间时的快照,和实时数据有所差别。
-
- 非常抱歉🙏,最新的是昨天的数据,我将为您查询最接近您需求的2026年05月08日原创文章。
-
- 📊 原创爆文推荐
- 2026年05月08日当天的原创爆款文章
-
- | 序号 | 作者 | 标题 | 阅读数 |
- |------|------|------|--------|
- | 1 | [作者A](链接) | [文章标题](链接) | 10w+ |
- ...
- ```
+ #### HTML页面生成
- **特殊情况 - 用户查询时间早于回溯日期**:
+ 在对话中完整输出所有文章数据后,自动生成HTML页面:
+ ```bash
+ python scripts/generate_hot_html.py --temp_file temp_articles.json --output "原创爆文_榜单.html" --display_count 20
```
- 💡 数据说明
- 公众号原创文章推荐将在每日19点30分准时更新昨日文章数据,以下数据为获取时间时的快照,和实时数据有所差别。
- 非常抱歉🙏,目前最多支持回溯「过去30天」(最早至2026年04月15日),我将为您查询最接近您需求的时间范围~
-
- 📊 原创爆文推荐
- 2026年04月15日当天的原创爆款文章
+ **HTML视觉规范**:
+ - 主色:`rgb(0, 179, 84)`(微信绿)
+ - 辅助色:`#0088ff`(阅读数、用户名称)
+ - 序号1-3使用🥇🥈🥉,4往后使用数字
+ - 用户名称可点击跳转公众号名片(`https://open.weixin.qq.com/qr/code?username={accountId}`)
+ - PDF导出:自适应单页模式,`pagebreak: { mode: 'none' }`
- | 序号 | 作者 | 标题 | 阅读数 |
- |------|------|------|--------|
- | 1 | [作者A](链接) | [文章标题](链接) | 10w+ |
- ...
- ```
+ **生成前置条件**:生成HTML前必须自检对话回复中是否已逐条展示了 `--limit` 指定数量的文章。
- **【重要】必须使用脚本实际返回的数据,不得使用上述示例数据!**
+ #### 订阅服务
- **【重要】只要数据查询日期和用户询问日期不一致,就必须在数据说明后显示提示信息:**
+ 主动询问用户是否需要订阅特定分类。用户选择订阅后,每天19:30推送最新一期原创爆文数据。
- - 查询日期 > 最新日期:`非常抱歉🙏,最新的是{查询日期}的数据,我将为您查询最接近您需求的{查询日期}原创文章。`
- - 查询日期 < 回溯日期:`非常抱歉🙏,目前最多支持回溯「过去30天」(最早至{回溯日期}),我将为您查询最接近您需求的时间范围~`
+ ### 命令速查表
- ### 3. 生成HTML页面(对话输出完成后执行)
+ | 场景 | 命令示例 |
+ |------|----------|
+ | 总榜查询 | `python scripts/fetch_articles.py --type "总排名" --limit 20` |
+ | 分类查询 | `python scripts/fetch_articles.py --type "科技数码" --limit 20` |
+ | 日期查询 | `python scripts/fetch_articles.py --type "总排名" --start_date "2026-05-03" --limit 20` |
+ | 生成HTML | `python scripts/generate_hot_html.py --temp_file temp_articles.json --output "原创爆文_榜单.html" --display_count 20` |
- **【执行顺序】先在对话中完整输出所有文章数据 → 再生成HTML页面并打开。禁止在对话输出完成前生成HTML。**
+ ## 5. 使用场景
- **【HTML生成前置条件】生成 HTML 前必须自检:对话回复中是否已逐条展示了 --limit 指定数量的文章?例如 limit=20 则必须能看到 20 个带序号的表格行。未通过自检则禁止生成 HTML,必须先补全文章。**
+ ### 场景一:原创作者学习爆文写法
- **【重要】每次对话中完整输出表格数据并通过自检后,自动调用generate_hot_html.py生成HTML页面并打开,无需用户额外触发。**
+ **角色**:公众号原创写手
+ **需求**:研究近期原创爆款文章的标题、选题和结构,提升写作水平
+ **使用方式**:查询全领域或特定领域原创爆文Top20,逐条阅读分析
+ **预期收益**:学习头部原创文章的成功模式,提升自身内容原创力和吸引力
- 调用脚本读取临时JSON文件数据,填充HTML模板,生成公众号风格的HTML页面:
+ ### 场景二:垂直领域内容对标
- **脚本位置**:`scripts/generate_hot_html.py`
+ **角色**:垂直领域公众号运营
+ **需求**:了解本领域原创爆文的最新趋势和竞争格局
+ **使用方式**:按分类查询,如"健康养生",输出该领域Top20原创爆文
+ **预期收益**:精准对标同领域头部内容,掌握领域内容风向
- **参数说明**:
+ ### 场景三:历史爆文回顾研究
- - `temp_file`: 临时JSON文件路径(默认:`temp_articles.json`)
- - `output`: 输出文件路径(建议:`{分类}_热门榜单.html`)
- - `display_count`: 要展示的文章数量(**重要**:必须与对话中展示的数量一致)
+ **角色**:内容策略分析师
+ **需求**:研究某个特定时间段(如节假日)的原创爆文特征
+ **使用方式**:使用日期查询功能,指定具体日期获取当日原创爆文
+ **预期收益**:发现时间周期性的爆文规律,制定更精准的内容日历
- **命令示例**:
+ ### 场景四:每日订阅持续追踪
- ```bash
- python scripts/generate_hot_html.py --temp_file temp_articles.json --output "原创爆文_榜单.html" --display_count 20
- ```
+ **角色**:自媒体创业者
+ **需求**:持续追踪原创爆文动态,不错过任何内容趋势变化
+ **使用方式**:订阅每日推送,每天19:30自动获取最新原创爆文
+ **预期收益**:保持对公众号原创内容生态的持续感知,及时调整创作方向
- ### 4. 订阅服务
+ ## 6. 项目架构
- **主动询问用户**是否需要订阅特定分类:
+ ### 目录结构
```
- 是否需要订阅具体赛道的账号表现?我们支持:
- 人文资讯、知识百科、健康养生、时尚潮流、美食餐饮、乐活生活、旅游出行、搞笑幽默、情感心理、体育娱乐、美容美体、文摘精选、民生资讯、财富理财、科技数码、创投商业、汽车交通、房产楼市、职场发展、教育考试、学术研究、企业品牌、总排名
+ wechat-original-hot/
+ ├── SKILL.md # 技能描述文件
+ ├── scripts/
+ │ ├── fetch_articles.py # 原创爆文数据获取脚本
+ │ └── generate_hot_html.py # HTML页面生成脚本
+ └── references/
+ └── category_mapping.md # 分类映射表
```
- 用户选择订阅后:
+ ### 技术栈
- - 订阅成功后:每天19:30推送最新一期原创爆文数据
- - 暂不需要 - 仅本次查询
+ | 组件 | 技术 | 说明 |
+ |------|------|------|
+ | 脚本语言 | Python 3 | 使用标准库(json, argparse, os, sys, urllib, ssl) |
+ | 数据接口 | Redfox API (POST) | `https://redfox.hk/story/api/cozeSkill/getWxDataByCategoryAndTime` |
+ | 认证方式 | X-API-KEY | 请求头认证 |
+ | 报告模板 | HTML/CSS/JS | 微信绿主题风格 |
+ | PDF导出 | html2pdf.js | 自适应单页模式 |
- ## 注意事项
+ ### 核心模块说明
- - **【核心规则】禁止向用户输出脚本路径、代码或执行命令,直接展示脚本运行结果**
- - 榜单数据为实时获取,可能因网络或API状态有所延迟
- - 首次展示前20条,超过20条时提示用户是否全部展示
- - 分类冷门时提示"该领域暂无爆款数据,建议换个方向或查看最新原创爆文"
- - **HTML内容一致性**:HTML中的文章内容必须与对话中展示的内容完全一致
- - **数据说明**:输出时必须注明数据库更新日期和查询的日期
+ | 模块 | 功能 |
+ |------|------|
+ | `fetch_articles.py` | 获取原创爆款文章数据,支持分类查询和日期查询,保存到临时JSON文件 |
+ | `generate_hot_html.py` | 从临时JSON文件读取数据,生成公众号风格HTML页面 |
+ | `category_mapping.md` | 分类映射表,包含22个标准分类和泛化关键词 |
- ## 资源索引
+ ### 资源索引
- 脚本: 见 [scripts/fetch_articles.py](scripts/fetch_articles.py)(用途: 获取原创爆款文章数据,支持分类查询和日期查询)
- 脚本: 见 [scripts/generate_hot_html.py](scripts/generate_hot_html.py)(用途: 从临时JSON文件读取数据,生成公众号风格HTML页面)
- 参考: 见 [references/category_mapping.md](references/category_mapping.md)(用途: 分类映射表,包含22个标准分类和泛化关键词)
- ## 使用示例
-
- **示例1:直接查询最新原创爆文**
-
- ```
- 用户输入:最新原创爆文
- 智能体识别:直接查询
- 智能体调用:
- python scripts/fetch_articles.py --type "总排名" --limit 20
-
- 输出结果:
- 数据说明:本次查询的数据更新时间为 2026年05月08日(数据每日18:30同步),查询的是 2026年05月07日 的原创爆文数据,与实时数据存在差异。
-
- 📊 原创爆文推荐
- 最近30天的原创爆款文章
-
- | 序号 | 作者 | 标题 | 阅读数 |
- |------|------|------|--------|
- | 1 | [一个坏土豆](链接) | [这次报应来的太快!日本刚刚遭遇迎头暴击](链接) | 10w+ |
- ...
-
- 共获取到50条爆款原创热门文章,当前展示前20条。
-
- 📬 订阅服务
- 是否需要订阅具体赛道的账号表现?我们支持:
- 人文资讯、知识百科、健康养生、时尚潮流、美食餐饮、乐活生活、旅游出行、搞笑幽默、情感心理、体育娱乐、美容美体、文摘精选、民生资讯、财富理财、科技数码、创投商业、汽车交通、房产楼市、职场发展、教育考试、学术研究、企业品牌、总排名
- 订阅推送 — 每天19点30分推送最新公众号原创文章
- 暂不需要 — 仅本次查询
- ```
-
- **示例2:分类查询**
-
- ```
- 用户输入:科技类原创爆款
- 智能体识别:分类查询
- 智能体匹配分类:"科技数码"
- 智能体调用:
- python scripts/fetch_articles.py --type "科技数码" --limit 20
-
- 输出结果:
- 数据说明:本次查询的数据更新时间为 2026年05月08日(数据每日18:30同步),查询的是 2026年05月07日 的原创爆文数据,与实时数据存在差异。
+ ## 7. 常见问答
- 📊 原创爆文推荐
- 最近30天的原创爆款文章
+ ### 安装相关
- | 序号 | 作者 | 标题 | 阅读数 |
- |------|------|------|--------|
- | 1 | [作者A](链接) | [科技文章标题1](链接) | 10w+ |
- ...
- ```
+ **Q: 脚本运行报错 "REDFOX_API_KEY not found"**
+ A: 请确保已配置环境变量 `REDFOX_API_KEY`,可参考上方鉴权章节配置。
- **示例3:日期查询**
+ **Q: 是否需要安装第三方依赖?**
+ A: 不需要。脚本使用Python标准库(json, argparse, os, sys, urllib, ssl),无需额外安装。
- ```
- 用户输入:5月3日的原创爆款
- 智能体识别:日期查询
- 智能体调用:
- python scripts/fetch_articles.py --type "总排名" --start_date "2026-05-03" --limit 20
+ ### 使用相关
- 输出结果:
- 数据说明:查询的是 2026年05月03日 的原创爆文数据,与实时数据存在差异。
+ **Q: 为什么查询"今日"的文章返回的是前天的?**
+ A: 数据每日19:30同步前一天数据。如果在19:30之前查询,前一天数据尚未同步,系统会自动查询前天的数据并给出提示。
- 📊 原创爆文推荐
- 2026年05月03日当天的原创爆款文章
+ **Q: 对话中输出的文章数量为什么和limit参数不一致?**
+ A: 本技能强制要求 `limit=20` 就必须逐条输出全部20条。如发现缺少文章,说明智能体执行出错,需要重新调用脚本。
- | 序号 | 作者 | 标题 | 阅读数 |
- |------|------|------|--------|
- | 1 | [作者A](链接) | [文章标题1](链接) | 10w+ |
- ...
- ```
+ **Q: 和 wechat-10w-hot 有什么区别?**
+ A: wechat-original-hot 专注**原创**爆款文章(对应来源"公众号文章原创之王"),wechat-10w-hot 收录所有**10w+阅读**文章(包含转载和非原创内容)。
- **示例4:分类+日期查询**
+ **Q: 如何按日期查询?**
+ A: 使用 `--start_date` 参数,如 `--start_date "2026-05-03"`。脚本会自动计算 `endDate = startDate + 1天`。
- ```
- 用户输入:5月3日科技类的原创爆款
- 智能体识别:分类+日期查询
- 智能体匹配分类:"科技数码"
- 智能体调用:
- python scripts/fetch_articles.py --type "科技数码" --start_date "2026-05-03" --limit 20
+ ### 故障排除
- 输出结果:
- 数据说明:查询的是 2026年05月03日 的原创爆文数据,与实时数据存在差异。
+ **Q: 分类查询匹配不到正确分类?**
+ A: 请参考 `references/category_mapping.md` 中的分类映射表。如果用户输入的关键词不在映射表中,可以提示用户从23个标准分类中选择。
- 📊 原创爆文推荐
- 2026年05月03日当天的原创爆款文章
+ **Q: HTML生成后文章数量不对?**
+ A: 使用 `--display_count` 参数确保HTML展示数量与对话中一致。生成前必须自检对话中展示的文章数量。
- | 序号 | 作者 | 标题 | 阅读数 |
- |------|------|------|--------|
- | 1 | [作者A](链接) | [科技文章标题1](链接) | 10w+ |
- ...
- ```
+ **Q: 查询返回空数据?**
+ A: 可能原因:1) 该分类在查询时间段内无原创爆文;2) 查询日期超出30天回溯范围;3) 查询日期早于最早可用数据。系统会给出相应提示。