---
name: news-fetcher
description: 每日新闻获取技能。通过 API 获取每日新闻摘要和详情，支持按日期查询、热点新闻排行、新闻详情阅读。
---

# 每日新闻 Skill

通过 API 获取每日新闻，支持新闻列表查询、热点新闻、新闻详情阅读等功能。

**说明：本 skill 直接使用系统命令调用 HTTP API，不依赖 Node.js 等运行时环境。**

- macOS / Linux：使用 `curl`
- Windows：使用 `curl.exe`（注意必须带 `.exe` 后缀，否则 PowerShell 会把 `curl` 解析为 `Invoke-WebRequest` 别名）

## API 接口

### 1. 获取每日新闻列表

**接口地址：**

```
https://api.cjiot.cc/api/v1/daily?date={YYYY-MM-DD}
```

**参数说明：**

- `date` - 日期，格式：YYYY-MM-DD（如：2026-03-10）
- 如果不传日期，默认获取**前一天**的新闻（日知录通常在当天晚些时候才汇总发布，因此默认返回昨日内容）

> 💡 当前日期由模型根据上下文自行推断并拼接到 URL 中，无需调用本机命令获取。

**返回结构：**

```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）到 URL
2. 调用 API（见下方"命令行调用"章节）；若不传 date 参数，API 默认返回前一天的新闻
3. 解析返回的 JSON 新闻列表
4. 按热度排序展示前 10 条新闻摘要

**回复模板：**

```
📰 {日期} 每日新闻摘要

共 {article_count} 条新闻，以下是热点 TOP10：

🔥 {热度} {标题}
   {摘要前 50 字}...

🔥 {热度} {标题}
   {摘要前 50 字}...

...

💡 回复"新闻 1"、"新闻 2"等查看具体新闻详情
```

### 场景二：获取指定日期新闻

**用户输入示例：**

- "查看 3 月 10 日的新闻"
- "前天的新闻"
- "昨天的日报"

**处理步骤：**

1. 解析用户输入的日期
2. 调用 API 获取新闻列表
3. 解析并展示新闻列表

**回复模板：**

```
📰 {日期} 每日新闻摘要

共 {article_count} 条新闻：

1️⃣ 🔥 {热度} {标题}
2️⃣ 🔥 {热度} {标题}
...

💡 回复"新闻 1"、"新闻 2"等查看具体新闻详情
```

### 场景三：查看新闻详情

**用户输入示例：**

- "看新闻 1"
- "读一下第 3 条"
- "第一条新闻详情"

**处理步骤：**

1. 从上下文获取当前新闻列表
2. 提取用户指定的文章 ID
3. 调用文章详情 API
4. 解析并展示新闻详情（标题、分类、热度、正文）；其中 `content.story` 与 `content.impact` 含 HTML 标签，展示前需去除标签

**回复模板：**

```
📄 {标题}

📁 分类：{category_name}
🔥 热度：{heat}
🕐 发布时间：{publish_time}

📝 新闻摘要：
{summary}

📖 详细内容：
{content.story 去除 HTML 标签后的文本}

💡 影响分析：
{content.impact 去除 HTML 标签后的文本}
```

### 场景四：按分类查看新闻

**用户输入示例：**

- "看时政新闻"
- "科技类新闻"
- "财经新闻有哪些"

**处理步骤：**

1. 先获取当日新闻列表
2. 根据分类 ID 筛选新闻（category_id）
3. 展示该分类下的新闻

**分类参考：**

- 1 - 娱乐
- 2 - 时政
- 3 - 社会
- 4 - 财经
- 5 - 科技
- 7 - 体育

## 命令行调用

> 调用后直接对返回的 JSON 进行解析处理（无需借助任何脚本/运行时）。

### 1. 获取每日新闻列表

**macOS / Linux（curl）：**

```bash
# 获取指定日期新闻
curl -s "https://api.cjiot.cc/api/v1/daily?date=2026-03-10"

# 获取前一天新闻（不传 date 参数，API 默认返回昨日）
curl -s "https://api.cjiot.cc/api/v1/daily"
```

**Windows（PowerShell）：**

```powershell
# 获取指定日期新闻
curl.exe -s "https://api.cjiot.cc/api/v1/daily?date=2026-03-10"

# 获取前一天新闻（不传 date 参数，API 默认返回昨日）
curl.exe -s "https://api.cjiot.cc/api/v1/daily"
```

### 2. 获取新闻详情

**macOS / Linux（curl）：**

```bash
curl -s "https://api.cjiot.cc/api/v1/articles/8533"
```

**Windows（PowerShell）：**

```powershell
curl.exe -s "https://api.cjiot.cc/api/v1/articles/8533"
```

## 注意事项

1. **日期格式**：必须使用 YYYY-MM-DD 格式（如：2026-03-10）
2. **默认日期**：不传 `date` 参数时 API 返回**前一天**的新闻（日知录通常在当天晚些时候才汇总发布）；当前日期由模型根据上下文自行推断并拼接，无需调用本机命令获取
3. **API 限制**：注意 API 调用频率，避免频繁请求
4. **HTML 处理**：新闻详情中的 `content.story` 和 `content.impact` 包含 HTML 标签（如 `<p>`、`<br>`、`<strong>`），展示时需要去除或转换为纯文本/Markdown
5. **热度排序**：新闻列表默认按 sort_order 排序，可按 heat 字段重新排序展示热点新闻
6. **上下文保持**：查看新闻详情时需要保持新闻列表上下文，以便用户连续查看多条新闻
7. **错误处理**：API 返回 code 不为 200 时，提示用户网络错误或日期无数据
8. **跨平台**：本 skill 不依赖 Node.js，仅依赖系统自带的 curl / curl.exe

## 相关链接

- API 文档：https://api.cjiot.cc
- 数据源：共晓天下日知录每日新闻
