Skill: redfox-data/wechat-10w-hot (version 1.0.4)

--- name: wechat-10w-hot description: 全网持续收录每日超过1000+公众号10w+文章内容，向用户推送公众号达到10w+阅读的热门文章；当用户需要获取全领域的公众号热门文章、或订阅每日10w+文章推送、特定领域爆款文章时使用 --- # 公众号10w+文章 ## 任务目标 - 本Skill用于：获取今日公众号10w+阅读文章 - 能力包含：爆款数据获取、互动排序**HTML页面生成、PDF导出** - 触发条件："最热公众号文章"、"最新爆文"、"10w+文章"等词语 - **核心功能**：主要推送全领域的10w+阅读文章，末尾询问用户是否需要订阅具体领域 - **输出规范**： 1. 文本输出：榜单数据（重要） + 爆款规律分析（**避免生成文档文件**） 2. 文件输出：HTML文件（用于可视化展示和PDF导出） ## 启动提示 - Skill加载后，提示用户："技能已加载完成。是否为您推送最新的10w+阅读文章。" ## 视觉规范（重要） 生成HTML页面时，必须遵循以下样式规范： **主题色调**： - 主色：`rgb(0, 179, 84)`（微信绿） - 辅助色：`#0088ff`（阅读数、用户名称蓝色） - 背景色：`#fff`（纯白） **布局结构**： - 序号（🥇🥈🥉/数字）放在标题左边 - 用户、类型、阅读数、发布时间四项目之间用浅灰色竖线分隔 `|` - 竖线高度缩短一半，垂直居中对齐 - 阅读量排序标签 + 导出PDF按钮 放在标题右侧 - **头部不含"爆款研究院"等品牌标签**，保持简洁 **图标规范**： - 用户图标：`👤`（无背景） - 阅读数图标：`📖` - 发布时间图标：`📅` **元素样式**： - 用户名称：`#0088ff`，可点击跳转公众号名片（链接：`https://open.weixin.qq.com/qr/code?username={accountId}`） - 阅读数：`#0088ff` - 爆款分析区块：无左边框，纯白背景 + 浅绿底色 **PDF导出**： - 使用 html2pdf.js 生成 - 按钮位于标题右侧，紧邻阅读量排序标签 - 按钮样式：蓝色渐变背景，白色文字，12px字号 - **自适应单页模式**：PDF尺寸根据内容实际大小自动调整，所有内容在一页完整展示，禁用分页分割 - PDF配置要点：`pagebreak: { mode: 'none' }`、`margin: 0`、根据内容高度/宽度计算纸张尺寸、添加 `page-break-inside: avoid` 样式 ## 前置准备 - 无需额外依赖，脚本使用Python标准库（urllib.request） ### 鉴权 #### 获取 API Key 请前往 [红狐hub](https://redfox.hk/settings/api-keys?source=clawhub) 获取API KEY #### 配置 API Key 方案1: 以OpenClaw为例，将REDFOX_API_KEY添加到~/.openclaw/openclaw.json中，部分内容如下： ```bash { "env": { "REDFOX_API_KEY": "ak_xxxx..." } } ``` 方案2: 终端配置 ```bash export REDFOX_API_KEY="ak_xxxx..." ``` ## 操作步骤 ### 标准流程 1. **用户意图识别**（智能体处理） 智能体首先识别用户输入的意图类型： - **总榜请求（主要功能）**：用户输入类似以下词语： - "今日爆文"、"今日10w+文章"、"10w+文章" - "爆文推荐"、"推荐爆文"、"最新爆文" - "热门爆文"、"每日爆文"、"爆文榜单" → 直接推送前天10w+阅读文章TOP50（因为数据库是当日下午6:30同步昨日的数据，所以查询前天数据以确保数据完全同步） - **领域关键词查询（附加功能）**：用户输入具体领域关键词（如"AI编程"、"财经"、"健康饮食"） → 使用用户输入的关键词调用API，输出该领域TOP10 - **模糊输入**：用户输入不明确 → 引导用户输入具体领域关键词或直接推送近7天的10w+阅读文章 2. **获取爆文数据**（**脚本执行** - **必须调用脚本并将输出原样展示给用户**） 调用 `scripts/fetch_hot_articles.py` 获取爆款内容数据 **参数说明**： - `type`：分类名称（智能体负责识别，直接传入标准分类名称，默认：总排名） - `start_date`：**必传**，开始日期（YYYY-MM-DD 格式，如：2026-05-13） - `end_date`：**必传**，结束日期（YYYY-MM-DD 格式，如：2026-05-14） - `source`：数据源（固定值："公众号10w+阅读文章推荐"） - `mode`：输出模式，preview=预览（前10条），full=全部 - `limit`：预览模式下显示的数量（默认10条） - `temp_file`：临时数据文件路径（默认temp_articles.json） **智能体分类识别规则**： - 智能体根据用户意图识别分类，直接传入标准分类名称（如：--type "科技数码"） - 参见 [references/category-mapping.md](references/category-mapping.md) 获取分类泛化映射规则 - 无分类关键词 → 默认"总排名" - 标准23分类：人文资讯、知识百科、健康养生、时尚潮流、美食餐饮、乐活生活、旅游出行、搞笑幽默、情感心理、体育娱乐、美容美体、文摘精选、民生资讯、财富理财、科技数码、创投商业、汽车交通、房产楼市、职场发展、教育考试、学术研究、企业品牌、总排名 **时间参数规则（重要）**： - `start_date` 和 `end_date` 都是**必传参数** - **数据更新时间**：每天 **18:30** 同步前一日数据 - **时间判断逻辑**：智能体必须根据当前时间和数据更新时间（18:30）自动计算正确的查询日期 **时间参数格式**： - 接口时间参数是**区间格式**，例如查询昨天的数据：`start_date=2026-05-13, end_date=2026-05-14` - 区间含义：查询从 start_date 00:00:00 到 end_date 23:59:59 的数据 **时间计算规则**： - **当前时间 < 18:30**：昨天的数据还未更新，查询昨天数据时应使用前天区间（因为前天数据已更新） - **当前时间 >= 18:30**：昨天的数据已更新，查询昨天数据时直接使用昨天区间 **典型场景示例**（假设今天是2026-05-14）： | 用户询问 | 当前时间 | 实际查询区间 | 原因 | |---------|---------|-------------|------| | 今日文章 | 11:19 | start_date=2026-05-12, end_date=2026-05-13 | 昨天数据未更新，查前天区间 | | 今日文章 | 19:30 | start_date=2026-05-13, end_date=2026-05-14 | 昨天数据已更新，查昨天区间 | | 昨天文章 | 11:19 | start_date=2026-05-12, end_date=2026-05-13 | 昨天数据未更新，但前天数据已更新，查前天区间 | | 昨天文章 | 19:30 | start_date=2026-05-13, end_date=2026-05-14 | 昨天数据已更新，查昨天区间 | **默认时间规则**： - 当用户提到"最近"、"最新"等**无明确时间说法**时，默认查询**过去7天**的数据 - 示例：用户问"最近有什么热门文章" → 查询过去7天区间 **订阅推送时间参数**： - 订阅推送时间：每天19:30 - 此时昨天的数据已更新完成（18:30已同步） - 订阅推送查询：昨天的数据（T-1） **文章数量较少提示规则**： - 当某赛道某日的10w+文章**少于10篇**时，在统计信息后提示： - 「💡 xx日xx赛道10w+文章较少，您可以拓展过去30天或者看看综合10w+文章~」 **时间不一致提示规则**： - 用户询问"今天的数据"，实际查询昨天的数据 → 提示：「非常抱歉🙏，今天的数据要明天才会更新，我将为您查询昨天的xx月xx日10W+文章。」 - 用户询问"昨天的数据"，实际查询前天的数据 → 提示：「非常抱歉🙏，昨天的数据还未更新，我将为您查询前天的xx月xx日10W+文章。」 - 用户询问时间早于回溯日期 → 提示：「非常抱歉🙏，目前最多支持回溯过去30天，我将为您查询最接近您需求的时间范围~」 **参数示例**（假设今天是2026-05-14）： - 用户询问"今日文章"，当前时间11:19（< 18:30）：`--start_date 2026-05-12 --end_date 2026-05-13`（今天数据要明天才更新，查昨天区间，需提示） - 用户询问"今日文章"，当前时间19:30（>= 18:30）：`--start_date 2026-05-13 --end_date 2026-05-14`（今天数据要明天才更新，查昨天区间，需提示） - 用户询问"昨天的文章"，当前时间11:19（< 18:30）：`--start_date 2026-05-12 --end_date 2026-05-13`（昨天数据未更新，查前天区间，需提示） - 用户询问"昨天的文章"，当前时间19:30（>= 18:30）：`--start_date 2026-05-13 --end_date 2026-05-14`（昨天数据已更新，查昨天区间，无需提示） **重要说明**： - **必须调用脚本**：智能体必须调用fetch_hot_articles.py脚本，不能自己生成文章内容 - **必须原样展示脚本输出**：智能体必须将脚本的stdout输出内容原样展示给用户，不得省略、修改、重新格式化或隐藏任何部分 - **脚本输出即最终输出**：脚本输出的内容（数据说明、文章概览表格、文章详情、统计信息）就是展示给用户的最终内容，智能体不需要再做任何处理 - **禁止省略**：文章概览表格和文章详情都必须完整展示，不得只展示其中一部分 - **输出顺序**：脚本会按照以下顺序自动输出：数据说明 → 文章概览表格 → 文章详情 → 统计信息 **总榜请求参数示例**（假设今天是2026-05-14，当前时间11:19 < 18:30）： - `type`: "总排名"（默认为总排名） - `start_date`: "2026-05-12"（前天，因为数据未更新） - `end_date`: "2026-05-13"（前天后一天，形成前天区间） - `mode`: "preview"（首次预览模式，只展示前10条） - `limit`: 10（首次展示10条） - 示例命令：`python scripts/fetch_hot_articles.py --type "总排名" --start_date 2026-05-12 --end_date 2026-05-13 --mode preview --limit 10` - 说明：查询前天（2026-05-12 00:00:00 ~ 2026-05-13 23:59:59）的10w+文章数据 **领域查询参数示例**（假设今天是2026-05-14，当前时间19:30 >= 18:30）： - `type`: 智能体识别的标准分类名称（如：科技数码、健康养生、财富理财等） - `start_date`: "2026-05-13"（昨天，因为数据已更新） - `end_date`: "2026-05-14"（昨天后一天，形成昨天区间） - `mode`: "preview"（首次预览模式，只展示前10条） - `limit`: 10（首次展示10条） - 示例命令：`python scripts/fetch_hot_articles.py --type "科技数码" --start_date 2026-05-13 --end_date 2026-05-14 --mode preview --limit 10` - 说明：查询昨天（2026-05-13 00:00:00 ~ 2026-05-14 23:59:59）的科技数码类10w+文章数据 脚本调用API接口：`https://redfox.hk/story/api/cozeSkill/getWxDataByCategoryAndTime` 请求方式：GET（使用 urllib.request 原生请求，不跳过 SSL 证书验证） 请求头包含：`Content-Type: application/json`, `X-API-KEY`（从环境变量 `REDFOX_API_KEY` 获取） 从返回数据的 `tenWReadingRank` 字段中提取文章列表 **分页展示逻辑**（智能体处理）： - 首次展示：调用脚本时使用 `--mode preview --limit 10`，只展示前10条数据 - 如果数据超过10条：在底部提示"还有X条数据未展示，可继续查看" - 用户要求拓展：调用脚本时使用 `--mode full`，展示所有数据 - 如果数据不超过10条：直接展示所有数据，无需询问 **总榜请求**：获取TOP50条数据 **领域查询**：获取TOP50条数据 **筛选执行**： 1. **读取筛选后数据**：脚本生成的 `temp_articles.json` 包含已排序和筛选的数据 2. **基于意图筛选**：根据用户意图识别文章的内容相关性，要围绕用户想搜索的关键词，优先展示与用户搜索关键词最相关的文章，从候选数据中选择最合适的10条做初步展示 3. **如实展示数量**：少于10条就展示实际数量，禁止凑数/编造 **数据存储**： - 脚本将API返回的数据保存到临时JSON文件：`temp_articles.json` - 后续生成HTML时直接读取临时JSON文件数据进行填充 **输出格式**（按顺序输出）： 1. **文章概览表格**：在最前面输出Markdown表格，包含序号、标题、作者、阅读数四列，直观展示文章列表 2. **文章详情**：每篇文章的详细信息（序号、标题、作者、阅读数、发布时间、内容分析） **文章概览表格格式**： ``` | 序号 | 标题 | 作者 | 阅读数 | |------|------|------|--------| | 1 | 2026年4月1日起，燃油车新规实施... | 作者名称 | 5w+ | | 2 | WSBK赛场横扫进口品牌，张雪机车... | 作者名称 | 1.5w+ | | 3 | 最新存款利率调整，这三类人影响最大 | 作者名称 | 4w+ | ``` **文章详情格式**： 每篇文章按以下格式输出： ``` **序号、[标题](文章链接)** 📄 作者：[作者名称](公众号名片链接) 👀 阅读数：阅读数 ⏰ 发布时间：发布时间 🔍 内容分析：基于四维度规则的分析内容 --- ``` 文章标题使用Markdown链接格式，点击可跳转到文章详情页 作者名称使用Markdown链接格式，点击可跳转到公众号名片页 **内容分析规则**： 内容分析必须基于以下四个维度，每篇文章的分析必须涵盖所有维度，输出为一段连贯的文字： - 内容概述：简明扼要地概括文章核心内容 - 热点利用：分析文章借用了哪些热点话题或趋势 - 传播作用：阐述内容起到的作用（如：满足用户需求、引发情感共鸣、提供实用价值） - 达成效果：说明内容达到的效果（如：提升品牌认知、完成用户转化、促进信息传播） **数据说明与提示规则**： **只要用户询问的时间和实际查询的时间不一致，就需要在数据说明后提示用户**： - 用户询问"今天的数据"，实际查询昨天的数据 → 提示：「非常抱歉🙏，今天的数据要明天才会更新，我将为您查询昨天的xx月xx日10W+文章。」 - 用户询问"昨天的数据"，实际查询前天的数据 → 提示：「非常抱歉🙏，昨天的数据还未更新，我将为您查询前天的xx月xx日10W+文章。」 - 用户询问时间早于回溯日期 → 提示：「非常抱歉🙏，目前最多支持回溯过去30天，我将为您查询最接近您需求的时间范围~」 **无需提示的情况**：用户询问的时间和实际查询的时间一致（如用户问昨天的数据，实际也查昨天的数据） **输出格式示例（正常情况）**： ``` 💡 数据说明 10w+阅读爆文推荐将在每日19点30分准时更新昨日文章数据。 ------------------------------------------------------------ 📊 文章概览 | 序号 | 标题 | 作者 | 阅读数 | |------|------|------|--------| | 1 | [2026年4月1日起，燃油车新规实施 年检、加油、卖车全变天 有些坑千万别踩](https://mp.weixin.qq.com/s?...) | [作者名称] (https://open.weixin.qq.com/qr/code?username=xxx)| 5w+ | | 2 | [WSBK赛场横扫进口品牌，张雪机车却被实名举报侵权](https://mp.weixin.qq.com/s?...) | [作者名称](https://open.weixin.qq.com/qr/code?username=xxx) | 1.5w+ | | 3 | [最新存款利率调整，这三类人影响最大](https://mp.weixin.qq.com/s?...) | [作者名称](https://open.weixin.qq.com/qr/code?username=xxx) | 4w+ | 📝 文章详情 **1、[2026年4月1日起，燃油车新规实施 年检、加油、卖车全变天 有些坑千万别踩](https://mp.weixin.qq.com/s?...)** 📄 作者：[作者名称](https://open.weixin.qq.com/qr/code?username=xxx) 👀 阅读数：5w+ ⏰ 发布时间：2026-03-24 08:08:57 🔍 内容分析：本文聚焦2026年4月1日即将实施的燃油车新规，详细阐述年检、加油、卖车等环节的全面变化并警示相关风险。文章借助政策实施这一时效性热点，精准切中车主群体的信息盲区，起到风险预警和知识普及的作用，成功唤起用户的关注度并引发转发传播。 --- **2、[WSBK赛场横扫进口品牌，张雪机车却被实名举报侵权](https://mp.weixin.qq.com/s?...)** 📄 作者：[作者名称](https://open.weixin.qq.com/qr/code?username=xxx) 👀 阅读数：1.5w+ ⏰ 发布时间：2026-04-06 06:49:51 🔍 内容分析：本文报道张雪机车在WSBK赛场的优异成绩与被实名举报侵权的争议事件，通过对比手法展现国产品牌的崛起与知识产权问题。文章借力国产替代和产业竞争的社会热点，激发民族自豪感和关注争议的双重情绪，在提升品牌影响力的同时引发公众对知识产权的讨论。 --- **3、[最新存款利率调整，这三类人影响最大](https://mp.weixin.qq.com/s?...)** 📄 作者：[作者名称](https://open.weixin.qq.com/qr/code?username=xxx) 👀 阅读数：4w+ ⏰ 发布时间：2026-04-05 09:30:00 🔍 内容分析：本文解读最新存款利率调整政策，明确指出三类受影响人群并提供应对建议。文章抓住财富管理这一持续热点，满足储户对资产保值增值的信息需求，起到专业指导和决策参考的作用，有效增强了用户对理财话题的关注度。 --- ============================================================ 共获取到 3 条10w+热门文章数据（已全部展示） ``` **输出格式示例（时间不一致，需提示）**： ``` 💡 数据说明 10w+阅读文章推荐将在每日19点30分准时更新昨日文章数据。 非常抱歉🙏，最新的是前天的数据，我将为您查询最接近您需求的5月12日10W+文章。 ------------------------------------------------------------ 📊 文章概览 | 序号 | 标题 | 作者 | 阅读数 | |------|------|------|--------| | 1 | [标题1](https://mp.weixin.qq.com/s?...) | [作者名称](https://open.weixin.qq.com/qr/code?username=xxx) | 5w+ | ... 📝 文章详情 ... ============================================================ 共获取到 X 条10w+热门文章数据，当前展示前 10 条 💡 提示：还有 X 条数据未展示，是否需要全部展示？ ``` 3. **爆款规律分析**（智能体处理，**在榜单数据展示后执行**） **重要**：在完整展示推荐榜单数据后，再执行规律分析 **分析原则**： - **必须基于实际文章数据**：所有结论必须从当前榜单文章中提炼，禁止使用固定示例 - **专业且通俗**：语言简洁专业，表达清晰易懂，避免过于口语化或AI化 - **具体可感**：用实际文章标题、数据说话，让用户能直接理解 **分析维度**： - 标题特征：从榜单文章标题中总结共性和亮点 - 内容主题：分析文章话题类型、传播价值 - 发布时间：分析发布时段规律 - 公众号特征：分析账号类型和内容定位特点 **输出格式**： ``` 📊 爆款规律分析 标题特征： - （根据实际文章标题总结，如：标题普遍采用数字+场景词组合，如"XX天"、"XX元"，信息明确,不要计算占比） - （从标题里找亮点，如：标题多含"千万别"、"注意"等提示词，激发用户避险心理） 内容主题： - （分析文章话题，如：主要聚焦XX领域，XX、XX等话题关注度较高,不要计算占比） - （分析传播价值，如：内容为用户日常场景但认知盲区，实用性强） 发布时间： - （从发布时间找规律，如：集中在早8点-9点发布，符合用户通勤阅读习惯） - （其他发现，如：工作日发布占比更高，周末流量相对分散） 公众号特征： - （账号类型，如：这次上榜的主要是XX类、XX类的账号） - （账号特点，如：粉丝量都不算特别大，但内容接地气，表达真实） ``` 4. **询问用户是否订阅**（**在规律分析后立即执行**） 在完成推荐榜单数据展示和爆款规律分析后，**主动询问用户**是否需要订阅特定领域。 ``` 📬 订阅服务 是否需要订阅具体赛道的账号表现？我们支持： 人文资讯、知识百科、健康养生、时尚潮流、美食餐饮、乐活生活、旅游出行、搞笑幽默、情感心理、体育娱乐、美容美体、文摘精选、民生资讯、财富理财、科技数码、创投商业、汽车交通、房产楼市、职场发展、教育考试、学术研究、企业品牌、总排名 订阅推送 - 每天19点30分推送最新10w+公众号爆文 暂不需要 - 仅本次查询 ``` **注意**：此时仅询问用户选择，暂不执行订阅逻辑，等待用户回复后再判断。 5. **生成HTML页面**（**在订阅询问后立即执行，不等待用户回复**） 调用脚本读取临时JSON文件数据，填充HTML模板，生成公众号风格的HTML页面： **脚本位置**：`scripts/generate_hot_html.py` **参数说明**： - `temp_file`: 临时JSON文件路径（默认：`temp_articles.json`） - `output`: 输出文件路径（建议：`{关键词}_热门榜单.html`） - `display_count`: 要展示的文章数量（**重要**：必须与对话中展示的数量一致） - 首次展示（preview模式）：`--display_count 10`（展示前10条） - 拓展展示（full模式）：不传此参数或使用 `--display_count 50`（展示所有数据） - **关键规则**：HTML中展示的文章数量必须与对话中实际展示的数量完全一致 **命令示例**： ```bash # 首次展示（对话中展示前10条） python scripts/generate_hot_html.py --temp_file temp_articles.json --output "热门文章_榜单.html" --display_count 10 # 拓展展示（对话中展示所有50条） python scripts/generate_hot_html.py --temp_file temp_articles.json --output "热门文章_榜单.html" --display_count 50 ``` **HTML页面规范**： - 主题色：`rgb(0, 179, 84)` - 用户名称/阅读数：`#0088ff` - 序号1-3使用🥇🥈🥉，4往后使用数字 - 用户名称左侧带👤图标，可点击跳转公众号名片 - 用户|阅读数|发布时间用竖线分隔 - 导出PDF按钮位于标题右侧，紧邻阅读量排序标签（无【】包裹） - **头部不含品牌标签块**，保持简洁 - 底部文字：「公众号10w+阅读文章，每日更新最新爆文内容」+「备注：互动数据为入库快照，实时数据可能持续增长」 - **防分页CSS**：article-item、article-list、content 等容器添加 `page-break-inside: avoid` 和 `break-inside: avoid` **生成前检查**： - 确认对话中实际展示的文章数量（如10条或50条） - 使用 `--display_count` 参数指定HTML中要展示的文章数量 - **关键规则**：HTML中的文章数量必须与对话中实际展示的数量完全一致 - 首次展示10条：使用 `--display_count 10`，HTML中也展示10条 - 拓展展示全部：使用 `--display_count 50`，HTML中也展示50条 - 数据不超过10条：使用 `--display_count N`（N为实际数量），HTML中也展示N条 - 确认HTML中的文章信息（标题、作者、阅读数、发布时间）与对话中展示的完全一致 - 确保所有文章的平台信息（账号名称、账号ID、阅读数等）完全一致 **生成后必须**： 1. 使用 preview_url 工具预览HTML 2. 告知用户文件位置 3. 询问是否需要调整样式 6. **处理用户订阅选择**（**在用户回复订阅询问后执行**） 根据用户对步骤4中订阅问题的回复，执行相应的订阅逻辑： **订阅处理流程**： - 用户选择"订阅推送"：引导用户输入领域关键词 - 用户输入领域关键词后：调用领域查询逻辑，输出该领域TOP50 + 爆款规律分析 - 订阅成功后：每天19点30分推送该领域最新10w+阅读文章TOP50 - **推送数据规则**：订阅推送查询的是昨天的数据（当前时间的上一天），使用 `--start_date yesterday` 参数 - 示例：今天是2026-04-20，推送时查询2026-04-19的数据 - 原因：数据库在当日下午6:30同步前一日数据，到19点30分推送时，昨天的数据已完全同步 - 用户选择"暂不需要"：结束本次交互 ## 可选操作 - 用户可以点击链接跳转到对应热点页面 - 可随时发送"取消订阅"停止推送 ## 注意事项 - **输出前自检**：智能体在输出内容前必须进行自检，确保输出严格按照SKILL.md中的"标准流程"进行，不得跳过任何步骤 - 步骤1：用户意图识别（智能体处理） - 步骤2：获取爆文数据（**必须调用脚本，必须将脚本输出原样展示给用户**，包括文章概览表格和文章详情） - 步骤3：爆款规律分析（**必须在步骤2完成后执行**，等待脚本输出完成） - 步骤4：询问用户是否订阅（**必须在步骤3完成后执行**） - 步骤5：生成HTML页面（**必须在步骤4完成后执行**） - 步骤6：处理用户订阅选择（**必须在用户回复后执行**） - **脚本调用规则**： - **必须调用**：步骤2必须调用fetch_hot_articles.py脚本，不能跳过或自行生成内容 - **必须原样展示**：脚本的stdout输出必须原样展示给用户，不得省略、修改、重新格式化 - **完整展示**：文章概览表格和文章详情都必须完整展示，不得只展示其中一部分 - **脚本输出即最终输出**：脚本输出的内容就是展示给用户的最终内容，智能体不需要再做任何格式化处理 - 榜单数据为实时获取，可能因网络或API状态有所延迟 - 总榜请求输出TOP50，领域查询输出TOP50 - 爆款规律分析基于当前榜单数据，仅供参考 - **无数据处理**：当查询结果为空时，提示用户"未查询到相关10w+阅读文章数据" - **输出规范**： - 文本输出：文章概览表格 + 文章详情 + 爆款规律分析（避免生成文档文件） - 文件输出：HTML文件（用于可视化展示和PDF导出） - **订阅提醒**：规律分析后询问用户是否需要订阅特定领域，订阅选择不影响已输出内容 - **分页展示**：首次展示前10条，超过10条时提示用户是否全部展示 - **数据存储**：脚本自动保存数据到temp_articles.json，HTML生成时直接读取 - **时间参数计算规则**：智能体必须根据当前时间和数据更新时间（18:30）自动计算正确的查询日期 - **数据更新时间**：每天18:30同步前一日数据 - **判断逻辑**：当前时间 < 18:30 → 查T-2（前天）；当前时间 >= 18:30 → 查T-1（昨天） - **示例**（今天是2026-05-14）： - 当前时间11:19（< 18:30），用户问"今日文章" → 查2026-05-12 ~ 2026-05-13 - 当前时间19:30（>= 18:30），用户问"今日文章" → 查2026-05-13 ~ 2026-05-14 - **订阅推送时间参数**：订阅推送（每天19:30）查询昨天的数据 - 原因：18:30数据已同步，19:30推送时昨天的数据已完全同步 - **HTML内容一致性**：HTML中的文章内容必须与对话中展示的Markdown格式文章完全一致 - **关键规则**：使用 `--display_count` 参数控制HTML中展示的文章数量 - 文章数量必须一致（对话中展示10篇，HTML中使用 `--display_count 10`，HTML中也展示10篇） - 文章信息必须一致（标题、作者、阅读数、发布时间） - 平台信息必须一致（账号名称、账号ID、链接） - 如果用户拓展查看全部数据，HTML中使用 `--display_count 50`，HTML中也展示50条 - **重要**：即使临时文件有50条数据，也要根据对话中实际展示的数量来生成HTML ## 资源索引 - 脚本: 见 [scripts/fetch_hot_articles.py](scripts/fetch_hot_articles.py)(用途: 根据分类和时间获取10w+热门文章数据，生成摘要表格和详情列表，保存到临时JSON文件) - 脚本: 见 [scripts/generate_hot_html.py](scripts/generate_hot_html.py)(用途: 从临时JSON文件读取数据，生成公众号风格HTML页面) - 参考: 见 [references/api-spec.md](references/api-spec.md)(何时读取: 查看API接口规范时使用) - 参考: 见 [references/category-mapping.md](references/category-mapping.md)(何时读取: 查看分类泛化映射规则时使用) ## 使用示例 **示例1：总榜请求（主要功能）** ``` 用户输入：今日爆文 智能体识别：总榜请求 智能体处理： - type: "总排名" - start_date: "2026-05-12"（前天，假设今天是2026-05-14） - end_date: "2026-05-13"（前天的后一天） - mode: "preview"（首次预览） - limit: 10 - 调用脚本获取最新10w+热门文章，数据自动保存到 temp_articles.json - 输出文章概览表格（前10条） - 输出文章详情（前10条） - 输出爆款规律分析 - 询问用户是否需要订阅特定领域 - 调用脚本读取 temp_articles.json 生成HTML页面（使用 --display_count 10，确保HTML中只展示10条） - 预览HTML页面 命令示例： python scripts/fetch_hot_articles.py \ --type "总排名" \ --start_date 2026-05-12 \ --end_date 2026-05-13 \ --mode preview \ --limit 10 输出结果： 💡 数据说明 10w+阅读爆文推荐将在每日19点30分准时更新昨日文章数据。 ------------------------------------------------------------ 📊 文章概览 | 序号 | 标题 | 作者 | 阅读数 | |------|------|------|--------| | 1 | 2026年4月1日起，燃油车新规实施... | 作者A | 5w+ | | ... | ... | ... | ... | | 10 | 最新存款利率调整... | 作者J | 4w+ | 📝 文章详情 [前10条文章详情...] 📊 爆款规律分析 [爆款规律分析内容...] 📬 订阅服务 订阅推送 - 每天19点30分推送最新10w+公众号爆文 暂不需要 - 仅本次查询 [HTML页面预览] 共获取到 50 条10w+热门文章数据，当前展示前 10 条 💡 提示：还有 40 条数据未展示，是否需要全部展示？ ``` **示例2：领域关键词查询** ``` 用户输入：推荐科技类的文章 智能体识别：领域关键词查询 智能体匹配分类："科技" → "科技数码" 智能体处理： - type: "科技数码"（根据关键词匹配） - start_date: "2026-05-13"（昨天，假设今天是2026-05-14） - end_date: "2026-05-14"（今天） - mode: "preview"（首次预览） - limit: 10 - 调用脚本获取科技数码领域文章，只展示前10条 - 输出文章概览表格（前10条） - 输出文章详情（前10条） - 输出爆款规律分析 - 询问用户是否需要订阅特定领域 - 调用脚本读取 temp_articles.json 生成HTML页面（使用 --display_count 10，确保HTML中只展示10条） - 预览HTML页面 命令示例： python scripts/fetch_hot_articles.py \ --type "科技数码" \ --start_date 2026-05-13 \ --end_date 2026-05-14 \ --mode preview \ --limit 10 输出结果： 💡 数据说明 10w+阅读爆文推荐将在每日19点30分准时更新昨日文章数据。 ------------------------------------------------------------ 📊 文章概览 | 序号 | 标题 | 作者 | 阅读数 | |------|------|------|--------| | 1 | 美伊战争大反转... | 作者A | 10w+ | | ... | ... | ... | ... | | 10 | 战争背后的经济逻辑... | 作者J | 10w+ | 📝 文章详情 [前10条文章详情...] 📊 爆款规律分析 [爆款规律分析内容...] 📬 订阅服务 订阅推送 - 每天19点30分推送最新10w+公众号爆文 暂不需要 - 仅本次查询 [HTML页面预览] 共获取到 50 条10w+热门文章数据，当前展示前 10 条 💡 提示：还有 40 条数据未展示，是否需要全部展示？ ``` **示例3：用户要求查看全部数据** ``` [承接示例1，用户回复"是"或"全部展示"] 智能体处理： - 调用脚本，mode: "full"，展示所有50条数据 命令示例： python scripts/fetch_hot_articles.py \ --type "总排名" \ --start_date 2026-05-12 \ --end_date 2026-05-13 \ --mode full 输出结果： 💡 数据说明 10w+阅读爆文推荐将在每日19点30分准时更新昨日文章数据。 ------------------------------------------------------------ 📊 文章概览 | 序号 | 标题 | 作者 | 阅读数 | |------|------|------|--------| | 1 | 2026年4月1日起，燃油车新规实施... | 作者A | 5w+ | | ... | ... | ... | ... | | 50 | 最新科技新闻汇总... | 作者Z | 3w+ | 📝 文章详情 [全部50条文章详情...] 共获取到 50 条10w+热门文章数据（已全部展示） ``` **示例4：数据不超过10条** ``` 用户输入：某个冷门领域 智能体处理： - type: 智能体匹配分类 - 调用脚本获取数据 - 智能体判断：只获取到5条数据 - 直接展示所有5条数据，无需询问是否拓展 命令示例： python scripts/fetch_hot_articles.py \ --type "学术研究" \ --start_date 2026-05-13 \ --end_date 2026-05-14 \ --mode preview 输出结果： 💡 数据说明 10w+阅读爆文推荐将在每日19点30分准时更新昨日文章数据。 ------------------------------------------------------------ 📊 文章概览 | 序号 | 标题 | 作者 | 阅读数 | |------|------|------|--------| | 1 | 冷门领域文章1 | 作者A | 10w+ | | ... | ... | ... | ... | | 5 | 冷门领域文章5 | 作者E | 10w+ | 📝 文章详情 [全部5条文章详情...] 📊 爆款规律分析 [爆款规律分析内容...] 📬 订阅服务 订阅推送 - 每天19点30分推送最新10w+公众号爆文 暂不需要 - 仅本次查询 [HTML页面预览] 共获取到 5 条10w+热门文章数据（已全部展示） ``` **示例5：无数据情况** ``` 用户输入：某个完全不存在的冷门关键词 智能体处理： - 调用脚本，返回空数据 - 提示"未查询到相关10w+阅读文章数据" - 推荐除了该领域的其他所有领域关键词 输出结果： 该领域在该时间段太冷门，暂无10w+文章，您可尝试查看综合10w+文章或者查看其他分类，如人文资讯、知识百科、健康养生、时尚潮流、美食餐饮、乐活生活、旅游出行、搞笑幽默、情感心理、体育娱乐、美容美体、文摘精选、民生资讯、财富理财、科技数码、创投商业、汽车交通、房产楼市、职场发展、教育考试、学术研究 ## 资源索引 - 脚本: 见 [scripts/fetch_hot_articles.py](scripts/fetch_hot_articles.py)(用途: 获取10w+热门文章数据，生成摘要表格和详情列表，保存到临时JSON文件) - 脚本: 见 [scripts/generate_hot_html.py](scripts/generate_hot_html.py)(用途: 从临时JSON文件读取数据，生成公众号风格HTML页面) - 参考: 见 [references/api-spec.md](references/api-spec.md)(何时读取: 查看API接口规范时使用) ## 注意事项 - 榜单数据可能因网络或API状态有所延迟 - 总榜请求输出TOP50，领域查询输出TOP50 - 爆款规律分析基于当前榜单数据，仅供参考 - **输出规范**： - 文本输出：文章概览表格 + 文章详情 + 爆款规律分析（避免生成文档文件） - 文件输出：HTML文件（用于可视化展示和PDF导出） - **订阅提醒**：规律分析后询问用户是否需要订阅特定领域，订阅选择不影响已输出内容 - **分页展示**：首次展示前10条，超过10条时提示用户是否全部展示 - **数据存储**：脚本自动保存数据到temp_articles.json，HTML生成时直接读取 ```


Security scan verdicts — ClawScan: suspicious | static analysis: clean | VirusTotal: clean | SkillSpector: suspicious (CRITICAL)