Skill: vic240821/daily-news-skill (version 1.0.0)

--- name: daily-news description: 每日新闻获取技能。通过 API 获取每日新闻摘要和详情，支持按日期查询、热点新闻排行、新闻详情阅读。 version: 1.0.0 metadata: openclaw: requires: bins: - curl - node homepage: https://api.cjiot.cc --- # 每日新闻 Skill 通过 API 获取每日新闻，支持新闻列表查询、热点新闻、新闻详情阅读等功能。 ## API 接口 ### 1. 获取每日新闻列表 **接口地址：** ``` https://api.cjiot.cc/api/v1/daily?date={YYYY-MM-DD} ``` **参数说明：** - `date` - 日期，格式：YYYY-MM-DD（如：2026-03-10） - 如果不传日期，默认获取最新日期的新闻 **返回结构：** ```json { "code": 200, "data": { "date": "2026-03-10", "title": "3 月 10 日日知录 - 交通部约谈国际航运巨头", "article_count": 17, "articles": [ { "article_id": 8533, "title": "交通部约谈两大国际航运巨头：直指运价暴涨和乱收费", "summary": "2026 年 3 月 9 日交通运输部就国际航运经营行为...", "heat": 93.0, "cover_image": "https://...", "category_id": 2, "is_pinned": 0, "sort_order": 0 } ] }, "message": "success" } ``` ### 2. 获取新闻详情 **接口地址：** ``` https://api.cjiot.cc/api/v1/articles/{article_id} ``` **参数说明：** - `article_id` - 文章 ID（从新闻列表中获取） **返回结构：** ```json { "code": 200, "data": { "article_id": 8533, "title": "交通部约谈两大国际航运巨头：直指运价暴涨和乱收费", "category_name": "时政", "heat": 93.0, "cover_image": "https://...", "summary": "...", "content": { "story": "<p>新闻正文内容...</p>", "impact": "<p>影响分析...</p>", "heat": 93, "type": "2" }, "publish_time": "2026-03-10T15:05:49" }, "message": "success" } ``` ## 触发条件 用户表达了以下意图之一： - 查询今日新闻、每日新闻、新闻摘要 - 查看某日期的新闻（如"查看 3 月 10 日的新闻"） - 获取热点新闻、热门新闻 - 阅读具体新闻详情（如"看第 3 条新闻"、"读一下这条新闻"） - 包含"新闻"、"日报"、"日知录"、"头条"等关键词 ## 使用场景 ### 场景一：获取今日新闻列表 **用户输入示例：** - "今天有什么新闻" - "查看每日新闻" - "来份今日日报" **处理步骤：** 1. 获取当前日期（格式：YYYY-MM-DD） 2. 调用 API：`curl -s "https://api.cjiot.cc/api/v1/daily?date={当前日期}"` 3. 解析返回的新闻列表 4. 按热度排序展示前 10 条新闻摘要 **回复模板：** ``` 📰 {日期} 每日新闻摘要 共 {article_count} 条新闻，以下是热点 TOP10： 🔥 {热度} {标题} {摘要前 50 字}... 🔥 {热度} {标题} {摘要前 50 字}... ... 💡 回复"新闻 1"、"新闻 2"等查看具体新闻详情 ``` ### 场景二：获取指定日期新闻 **用户输入示例：** - "查看 3 月 10 日的新闻" - "前天的新闻" - "昨天的日报" **处理步骤：** 1. 解析用户输入的日期 2. 调用 API：`curl -s "https://api.cjiot.cc/api/v1/daily?date={日期}"` 3. 解析并展示新闻列表 **回复模板：** ``` 📰 {日期} 每日新闻摘要 共 {article_count} 条新闻： 1️⃣ 🔥 {热度} {标题} 2️⃣ 🔥 {热度} {标题} ... 💡 回复"新闻 1"、"新闻 2"等查看具体新闻详情 ``` ### 场景三：查看新闻详情 **用户输入示例：** - "看新闻 1" - "读一下第 3 条" - "第一条新闻详情" **处理步骤：** 1. 从上下文获取当前新闻列表 2. 提取用户指定的文章 ID 3. 调用 API：`curl -s "https://api.cjiot.cc/api/v1/articles/{article_id}"` 4. 解析并展示新闻详情（标题、分类、热度、正文） **回复模板：** ``` 📄 {标题} 📁 分类：{category_name} 🔥 热度：{heat} 🕐 发布时间：{publish_time} 📝 新闻摘要： {summary} 📖 详细内容： {content.story 去除 HTML 标签后的文本} 💡 影响分析： {content.impact 去除 HTML 标签后的文本} ``` ### 场景四：按分类查看新闻 **用户输入示例：** - "看时政新闻" - "科技类新闻" - "财经新闻有哪些" **处理步骤：** 1. 先获取当日新闻列表 2. 根据分类 ID 筛选新闻（category_id） 3. 展示该分类下的新闻 **分类参考：** - 1 - 娱乐 - 2 - 时政 - 3 - 社会 - 4 - 财经 - 5 - 科技 - 7 - 体育 ## 脚本工具 ### 获取新闻列表 ```bash node scripts/get-daily.js [date] ``` **示例：** ```bash # 获取今日新闻 node scripts/get-daily.js # 获取指定日期新闻 node scripts/get-daily.js 2026-03-10 ``` ### 获取新闻详情 ```bash node scripts/get-article.js <article_id> ``` **示例：** ```bash node scripts/get-article.js 8533 ``` ## 注意事项 1. **日期格式**：必须使用 YYYY-MM-DD 格式（如：2026-03-10） 2. **API 限制**：注意 API 调用频率，避免频繁请求 3. **HTML 处理**：新闻详情中的 content.story 和 content.impact 包含 HTML 标签，展示时需要去除或转换 4. **热度排序**：新闻列表默认按 sort_order 排序，可按 heat 字段重新排序展示热点新闻 5. **上下文保持**：查看新闻详情时需要保持新闻列表上下文，以便用户连续查看多条新闻 6. **错误处理**：API 返回 code 不为 200 时，提示用户网络错误或日期无数据 ## 相关链接 - API 文档：https://api.cjiot.cc - 数据源：共晓天下日知录每日新闻


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