Task Objective
- This Skill must call scripts to obtain data. AI is prohibited from generating any content on its own. Not calling scripts = function invalid.
- This Skill is used to: obtain popular original articles from official accounts
- Capabilities include: popular article data acquisition, category query, date query, HTML page generation, PDF export
- Trigger conditions: terms such as "original popular article", "popular article recommendation", "today's popular articles", etc.
- Core Functions: mainly pushes popular original articles, supports filtering by category and date, and at the end asks the user whether they need to view more or subscribe to daily pushes
- Default Query Time: when users mention "recent", "latest", or other expressions without a clear time, the default query is the past 7 days of data
- Article Count Prompt: when there are fewer than 10 articles, prompt "xx track has fewer 100k+ articles, you can expand to the past 30 days or check comprehensive 100k+ articles~"
- Output Specifications:
- Text output: ranking data (important)
- File output: HTML file (for visual display and PDF export)
- Prohibited Actions: generating article content, writing suggestions, or analysis of popular article patterns on one's own is prohibited; this Skill only outputs ranking data
Startup Prompt
- After the Skill is loaded, prompt the user: "The skill has been loaded. Would you like me to push the latest popular original articles for you?"
Visual Specifications (Important)
When generating an HTML page, the following style specifications must be followed:
Theme Colors:
- Primary color:
rgb(0, 179, 84)(WeChat green) - Auxiliary color:
#0088ff(blue for read counts and user names) - Background color:
#fff(pure white)
Layout Structure:
- Ranking number (🥇🥈🥉/number) placed to the left of the title
- The four items of user, type, read count, and publish time are separated by light gray vertical lines
| - The vertical lines are shortened by half and aligned vertically centered
- Read count sort tag + Export PDF button placed to the right of the title
- The header does not contain brand tags such as "Popular Article Research Institute", keeping it concise
Icon Specifications:
- User icon:
👤(no background) - Read count icon:
📖
Element Styles:
- User name:
#0088ff, clickable to jump to the official account card (link:https://open.weixin.qq.com/qr/code?username={accountId}) - Read count:
#0088ff - Popular article analysis block: no left border, pure white background + light green background color
PDF Export:
- Generated using html2pdf.js
- The button is located to the right of the title, adjacent to the read count sort tag
- Button style: blue gradient background, white text, 12px font size
- Adaptive single-page mode: PDF dimensions automatically adjust according to the actual content size, all content is fully displayed on one page, and pagination splitting is disabled
- PDF configuration key points:
pagebreak: { mode: 'none' }、margin: 0, calculate paper size according to content height/width, addpage-break-inside: avoidstyle
Prerequisites
- No additional dependencies are required; the script uses the Python standard library
Data Time Description
- Data Sync Time: Synced daily at 19:30
- Synced Data Range: Data from the previous day (T-1)
- Query Data Range:
- Current time < 19:30: Query T-2 data (the day before yesterday)
- Current time >= 19:30: Query T-1 data (yesterday)
- Output Labeling: Data update time = T-1 date, query data date = T-2 date
- Default Query Time: When the user mentions "recent", "latest", etc. without a clear time reference, query the past 7 days by default
Operation Steps
1. User Intent Recognition (handled by the agent)
The agent first identifies the type of user input intent:
-
Category Query: The user inputs a specific category (such as "Technology", "Health & Wellness", "Finance", etc.) → Match the category and output the Top20 for that category → Refer to Category Mapping Table for category matching
-
Date Query: The user inputs a specific date (such as "original viral articles on May 3", "yesterday's viral articles") → Output the Top20 viral articles for the specified date
-
Time Range Query: The user inputs "recent", "latest", etc. without a clear time reference → Query the past 7 days of data by default and output the Top20
-
Direct Query: The user inputs words similar to the following:
- "Today's viral articles", "Today's original articles", "Original articles"
- "Latest viral articles", "Viral article recommendations", "Original viral articles"
- "Hot viral articles", "Daily viral articles", "Viral article rankings" → Output the Top20 latest original viral articles
-
Vague Input: The user input is unclear → Directly push today's popular original articles
2. Get Viral Article Data (script execution; the script must be called and the output must be shown to the user as-is)
[Mandatory] No matter what the user inputs, the agent must first call fetch_articles.py to get the data, and then display it as-is. Any output without calling the script is considered invalid.
Call scripts/fetch_articles.py to get viral content data
[Core Output Rules]:
- Must call the script: The agent must call the fetch_articles.py script and cannot generate article content itself
- Do not output the script file path or code: The agent must not show the user any script path, code content, or execution commands
- Must display the script output as-is: The agent must display the script's stdout output to the user as-is, and must not omit, modify, reformat, or hide any part
- Do not modify the data: Do not modify, reformat, beautify, or hide any part of the script output
- Do not generate data yourself: Do not use the data in the output examples; you must use the data actually returned by the script
- The script output is the final output: The content output by the script (data description, original viral article recommendation table, asking the user whether to view the remaining content, asking about subscription) is the final content shown to the user, and the agent does not need to do any further processing
- [Important] The inquiry section cannot be omitted: The final part of the script output "Retrieved XX items in total..." and the subscription service must be displayed completely and must not be omitted
Interface Information:
- Interface URL:
https://onetotenvip.com/skill/cozeSkill/getWxDataByCategoryAndTime - Request method: GET
- Parameters:
type: Category name (such as "Tech & Digital", "Overall Ranking", etc.)startDate: Start date (YYYY-MM-DD format)endDate: End date (YYYY-MM-DD format)source: "King of Original WeChat Official Account Articles" (fixed value)
Script invocation method(executed internally by the agent, not visible to the user):
Category query:
python scripts/fetch_articles.py --type "科技数码" --limit 20
--type: Category name matched from user input (refer to the category mapping table)- For example, if the user inputs "tech category original viral hits", the agent matches "Tech & Digital" and passes in
--type "科技数码"
Overall ranking query:
python scripts/fetch_articles.py --type "总排名" --limit 20
- or do not pass
--type, defaults to "Overall Ranking"
Date query:
python scripts/fetch_articles.py --type "总排名" --start_date "2026-05-03" --limit 20
--start_date: The date specified by the user (YYYY-MM-DD format)- The script will automatically calculate
endDate=startDate+ 1 day
Time parameter description:
- When the user does not specify a date, the script automatically determines based on the current time:
- Current time < 18:30: query T-2 data (the day before yesterday)
- Current time >= 18:30: query T-1 data (yesterday)
- When the user specifies a date, use the date specified by the user
[Output format]
Article overview table: Output a Markdown table containing four columns: serial number, author, title, and read count; the author and title contain links
| 序号 | 作者 | 标题 | 阅读数 |
|------|------|------|--------|
| 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+ |
Output example(format only; actual data is subject to what the script returns):
Latest issue data:
💡 数据说明
公众号原创文章推荐将在每日19点30分准时更新昨日文章数据,以下数据为获取时间时的快照,和实时数据有所差别。
非常抱歉🙏,最新的是前天的数据,我将为您查询最接近您需求的2026年05月12日原创文章。
📊 原创爆文推荐
最近30天的原创爆款文章
| 序号 | 作者 | 标题 | 阅读数 |
|------|------|------|--------|
| 1 | [作者A](链接) | [文章标题](链接) | 10w+ |
...
导出功能:输出生成HTML榜单页面,表格内容支持导出 PDF 格式,自动生成并打开
共获取到50条爆款原创热门文章,当前展示前20条。
📬 订阅服务
是否需要订阅具体赛道的账号表现?我们支持:
人文资讯、知识百科、健康养生、时尚潮流、美食餐饮、乐活生活、旅游出行、搞笑幽默、情感心理、体育娱乐、美容美体、文摘精选、民生资讯、财富理财、科技数码、创投商业、汽车交通、房产楼市、职场发展、教育考试、学术研究、企业品牌、总排名
订阅推送 — 每天19点30分推送最新公众号原创文章
暂不需要 — 仅本次查询
Specified date query(date within the valid range):
💡 数据说明
公众号原创文章推荐将在每日19点30分准时更新昨日文章数据,以下数据为获取时间时的快照,和实时数据有所差别。
📊 原创爆文推荐
2026年05月03日当天的原创爆款文章
| 序号 | 作者 | 标题 | 阅读数 |
|------|------|------|--------|
| 1 | [作者A](链接) | [文章标题](链接) | 10w+ |
...
User queries "today's viral hits"(today's data has not been updated):
💡 数据说明
公众号原创文章推荐将在每日19点30分准时更新昨日文章数据,以下数据为获取时间时的快照,和实时数据有所差别。
非常抱歉🙏,最新的是前天的数据,我将为您查询最接近您需求的2026年05月12日原创文章。
📊 原创爆文推荐
2026年05月12日当天的原创爆款文章
| 序号 | 作者 | 标题 | 阅读数 |
|------|------|------|--------|
| 1 | [作者A](链接) | [文章标题](链接) | 10w+ |
...
User queries "the last 7 days"(query time range exceeds the latest data):
💡 数据说明
公众号原创文章推荐将在每日19点30分准时更新昨日文章数据,以下数据为获取时间时的快照,和实时数据有所差别。
非常抱歉🙏,最新的是前天的数据,我将为您查询最接近您需求的时间范围。
📊 原创爆文推荐
2026年05月06日至2026年05月12日的原创爆款文章
| 序号 | 作者 | 标题 | 阅读数 |
|------|------|------|--------|
| 1 | [作者A](链接) | [文章标题](链接) | 10w+ |
...
Special case - the user's query time is earlier than the backtracking date:
💡 数据说明
公众号原创文章推荐将在每日19点30分准时更新昨日文章数据,以下数据为获取时间时的快照,和实时数据有所差别。
非常抱歉🙏,最新的是昨天的数据,我将为您查询最接近您需求的2026年05月08日原创文章。
📊 原创爆文推荐
2026年05月08日当天的原创爆款文章
| 序号 | 作者 | 标题 | 阅读数 |
|------|------|------|--------|
| 1 | [作者A](链接) | [文章标题](链接) | 10w+ |
...
Special case - the user's query time is earlier than the backtracking date:
💡 数据说明
公众号原创文章推荐将在每日19点30分准时更新昨日文章数据,以下数据为获取时间时的快照,和实时数据有所差别。
非常抱歉🙏,目前最多支持回溯「过去30天」(最早至2026年04月15日),我将为您查询最接近您需求的时间范围~
📊 原创爆文推荐
2026年04月15日当天的原创爆款文章
| 序号 | 作者 | 标题 | 阅读数 |
|------|------|------|--------|
| 1 | [作者A](链接) | [文章标题](链接) | 10w+ |
...
[Important] You must use the data actually returned by the script and must not use the example data above!
[Important] As long as the data query date is inconsistent with the date the user asked about, a prompt message must be displayed after the data description:
- Query date > latest date:
非常抱歉🙏,最新的是{查询日期}的数据,我将为您查询最接近您需求的{查询日期}原创文章。 - Query date < backtracking date:
非常抱歉🙏,目前最多支持回溯「过去30天」(最早至{回溯日期}),我将为您查询最接近您需求的时间范围~
3. Generate an HTML page (automatically executed)
[Important] After outputting table data each time, you must automatically call generate_hot_html.py to generate and open an HTML page, with no additional trigger from the user required.
Call the script to read the temporary JSON file data, fill the HTML template, and generate a WeChat Official Account-style HTML page:
Script location:scripts/generate_hot_html.py
Parameter description:
temp_file: Temporary JSON file path (default:temp_articles.json)output: Output file path (recommended:{分类}_热门榜单.html)display_count: Number of articles to display (Important: must be consistent with the number displayed in the conversation)
Command example:
python scripts/generate_hot_html.py --temp_file temp_articles.json --output "原创爆文_榜单.html" --display_count 20
4. Subscription service
Proactively ask the userwhether they need to subscribe to a specific category:
是否需要订阅具体赛道的账号表现?我们支持:
人文资讯、知识百科、健康养生、时尚潮流、美食餐饮、乐活生活、旅游出行、搞笑幽默、情感心理、体育娱乐、美容美体、文摘精选、民生资讯、财富理财、科技数码、创投商业、汽车交通、房产楼市、职场发展、教育考试、学术研究、企业品牌、总排名
After the user chooses to subscribe:
- After successful subscription: push the latest issue of original viral article data every day at 19:30
- Not needed for now - this query only
Notes
- [Core Rule] It is forbidden to output script paths, code, or execution commands to the user; directly display the script run results
- Ranking data is retrieved in real time and may be delayed due to network or API status
- Display the first 20 items initially; when there are more than 20, prompt the user whether to display all
- When a category is niche, prompt "There is currently no viral data in this field; it is recommended to try a different direction or view the latest original viral articles"
- HTML content consistency: The article content in the HTML must be completely consistent with the content displayed in the conversation
- Data description: When outputting, the database update date and the query date must be noted
Resource index
- Script: see scripts/fetch_articles.py(Purpose: retrieve original viral article data, supporting category queries and date queries)
- Script: see scripts/generate_hot_html.py(Purpose: read data from a temporary JSON file and generate a WeChat official account-style HTML page)
- Reference: see references/category_mapping.md(Purpose: category mapping table, containing 22 standard categories and generalized keywords)
Usage examples
Example 1: Directly query the latest original viral articles
用户输入:最新原创爆文
智能体识别:直接查询
智能体调用:
python scripts/fetch_articles.py --type "总排名" --limit 20
输出结果:
数据说明:本次查询的数据更新时间为 2026年05月08日(数据每日18:30同步),查询的是 2026年05月07日 的原创爆文数据,与实时数据存在差异。
📊 原创爆文推荐
最近30天的原创爆款文章
| 序号 | 作者 | 标题 | 阅读数 |
|------|------|------|--------|
| 1 | [一个坏土豆](链接) | [这次报应来的太快!日本刚刚遭遇迎头暴击](链接) | 10w+ |
...
共获取到50条爆款原创热门文章,当前展示前20条。
📬 订阅服务
是否需要订阅具体赛道的账号表现?我们支持:
人文资讯、知识百科、健康养生、时尚潮流、美食餐饮、乐活生活、旅游出行、搞笑幽默、情感心理、体育娱乐、美容美体、文摘精选、民生资讯、财富理财、科技数码、创投商业、汽车交通、房产楼市、职场发展、教育考试、学术研究、企业品牌、总排名
订阅推送 — 每天19点30分推送最新公众号原创文章
暂不需要 — 仅本次查询
Example 2: Category query
用户输入:科技类原创爆款
智能体识别:分类查询
智能体匹配分类:"科技数码"
智能体调用:
python scripts/fetch_articles.py --type "科技数码" --limit 20
输出结果:
数据说明:本次查询的数据更新时间为 2026年05月08日(数据每日18:30同步),查询的是 2026年05月07日 的原创爆文数据,与实时数据存在差异。
📊 原创爆文推荐
最近30天的原创爆款文章
| 序号 | 作者 | 标题 | 阅读数 |
|------|------|------|--------|
| 1 | [作者A](链接) | [科技文章标题1](链接) | 10w+ |
...
Example 3: Date query
用户输入:5月3日的原创爆款
智能体识别:日期查询
智能体调用:
python scripts/fetch_articles.py --type "总排名" --start_date "2026-05-03" --limit 20
输出结果:
数据说明:查询的是 2026年05月03日 的原创爆文数据,与实时数据存在差异。
📊 原创爆文推荐
2026年05月03日当天的原创爆款文章
| 序号 | 作者 | 标题 | 阅读数 |
|------|------|------|--------|
| 1 | [作者A](链接) | [文章标题1](链接) | 10w+ |
...
Example 4: Category + date query
用户输入:5月3日科技类的原创爆款
智能体识别:分类+日期查询
智能体匹配分类:"科技数码"
智能体调用:
python scripts/fetch_articles.py --type "科技数码" --start_date "2026-05-03" --limit 20
输出结果:
数据说明:查询的是 2026年05月03日 的原创爆文数据,与实时数据存在差异。
📊 原创爆文推荐
2026年05月03日当天的原创爆款文章
| 序号 | 作者 | 标题 | 阅读数 |
|------|------|------|--------|
| 1 | [作者A](链接) | [科技文章标题1](链接) | 10w+ |
...