daily-topic-selector

Daily topic fetcher that collects articles from multiple sources (RSS, API, HTML), scores and ranks them by relevance, and generates enhanced Chinese reports.

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "daily-topic-selector" with this command: npx skills add ruiwarn/daily-topic-selector/ruiwarn-daily-topic-selector-daily-topic-selector

daily-topic-selector

每日选题抓取工具 - 从多个内容源获取最新文章并评分排序

触发方式

当用户说以下内容时触发此技能:

  • "抓取今日选题"
  • "获取每日选题"
  • "运行 daily-topic-selector"
  • "/daily-topic-selector"
  • "fetch daily topics"

功能说明

此技能用于从多个内容源(RSS、API、HTML、JSON)抓取最新文章,并通过评分系统筛选出最值得阅读的内容。

支持的数据源:

  • TLDR AI - AI 领域每日简报
  • Hacker News - 技术社区热门内容
  • Import AI - AI 政策与研究深度分析
  • James Clear - 习惯与个人成长
  • Wait But Why - 长文深度思考

使用指令

基础用法

# 抓取最近 1 天的内容(输出到当前目录的 daily_output/)
python $SKILL_DIR/scripts/run.py

# 抓取最近 N 天的内容
python $SKILL_DIR/scripts/run.py --days 3

# 指定其他输出目录
python $SKILL_DIR/scripts/run.py --output_dir /path/to/output

说明:默认输出到当前工作目录下的 daily_output/YYYY-MM-DD/ 目录。

高级用法

# 只抓取特定源
python $SKILL_DIR/scripts/run.py --only_sources hn,import_ai

# 指定时间范围
python $SKILL_DIR/scripts/run.py --since 2024-01-01T00:00:00Z

# 调整抓取参数
python $SKILL_DIR/scripts/run.py --limit_per_source 100 --timeout 30

输出文件

运行后会生成 5 个文件:

文件说明
daily_topics.md原始 Markdown 日报
daily_topics_zh.md增强版日报(含中文翻译和摘要)
daily_topics.json机器可读的 JSON 数据
fetch_log.txt抓取日志
run_meta.json运行元信息

执行流程

当用户触发此 skill 时,按以下步骤执行:

步骤 1:运行 Python 脚本抓取数据

python3 $SKILL_DIR/scripts/run.py

脚本完成后会输出结构化结果:

===== RESULT =====
OUTPUT_DIR=/path/to/daily_output/YYYY-MM-DD
JSON_FILE=/path/to/daily_output/YYYY-MM-DD/daily_topics.json
MD_FILE=/path/to/daily_output/YYYY-MM-DD/daily_topics.md
NEW_COUNT=33
==================

步骤 2:读取 JSON_FILE 进行后处理

  1. 读取上述 JSON_FILE 路径的文件
  2. 为英文标题生成中文翻译和摘要
  3. OUTPUT_DIR 下创建 daily_topics_zh.md

增强后的 Markdown 格式

### 1. [原始英文标题](URL)
- **中文**:中文标题翻译
- **时间**:2026-01-09 16:46 | **分数**:85.0
- **Points**: 509 | **Comments**: 701
- **标签**:`云服务`, `监管`, `科技公司`
- **摘要**:一句话中文摘要,帮助读者快速了解文章主题和价值。

翻译和摘要要求

  • 中文标题:简洁准确,保留关键信息,不超过 30 字
  • 中文摘要:1-2 句话,说明文章主题、核心观点或为什么值得阅读
  • 标签优化:将通用标签(如 tech, startup)替换为更具体的中文标签
  • 批量处理:一次性处理所有条目,然后一次性写入文件

处理示例

原始条目:

{
  "title": "Cloudflare CEO on the Italy fines",
  "tags": ["tech", "startup", "programming"],
  ...
}

增强后:

### 1. [Cloudflare CEO on the Italy fines](https://...)
- **中文**:Cloudflare CEO 回应意大利罚款事件
- **时间**:2026-01-09 16:46 | **分数**:100.0
- **Points**: 509 | **Comments**: 701
- **标签**:`云服务`, `欧盟监管`, `互联网基础设施`
- **摘要**:Cloudflare CEO 在社交媒体上回应意大利监管机构的罚款决定,讨论了欧洲互联网监管趋势及其对云服务商的影响。

命令行参数

参数默认值说明
--days1抓取最近 N 天的内容
--since-抓取该时间之后的内容 (ISO 格式)
--output_dir.输出目录
--limit_per_source50每个源最大抓取条数
--only_sources-只抓取指定源 (逗号分隔)
--config自动配置目录路径
--incrementaltrue增量模式
--timeout20请求超时 (秒)
--retries2失败重试次数

依赖要求

运行前请确保已安装依赖:

pip install requests feedparser beautifulsoup4 lxml PyYAML

配置说明

配置文件查找顺序

程序按以下优先级查找配置:

  1. --config 参数指定的目录
  2. ~/.config/daily-topic-selector/ (用户自定义配置)
  3. $SKILL_DIR/config/ (默认配置)

配置合并机制

重要:用户配置与默认配置会自动合并,这意味着:

  • 自动获取新源:当 skill 更新添加了新的数据源,用户无需修改配置即可使用
  • 保留用户自定义:用户对现有源的修改不会被覆盖
  • 灵活禁用源:用户可以通过 enabled: false 禁用不想要的源

合并规则

场景行为
默认源,用户未修改使用默认配置(自动获取更新)
默认源,用户有自定义用户配置覆盖默认配置
skill 新增源,用户无配置自动启用新源
skill 新增源,用户设置 enabled: false保持禁用
用户自定义源(默认配置中不存在)保留用户配置

初始化用户配置

首次使用时,可复制默认配置到用户目录:

mkdir -p ~/.config/daily-topic-selector
cp $SKILL_DIR/config/*.yaml ~/.config/daily-topic-selector/

注意:复制后用户配置将覆盖对应的默认配置。如果只想微调某些设置,建议只创建包含需要修改部分的配置文件。

最佳实践

方式一:完全自定义(复制全部配置)

适合需要完全控制配置的用户:

cp $SKILL_DIR/config/*.yaml ~/.config/daily-topic-selector/
# 编辑配置文件进行自定义

⚠️ 缺点:skill 更新新源时需要手动添加

方式二:增量自定义(推荐)

只创建包含需要修改部分的配置,其余使用默认值:

# ~/.config/daily-topic-selector/sources.yaml
# 只需要写需要修改的部分

sources:
  # 禁用不想要的源
  wait_but_why:
    enabled: false

  # 修改现有源的配置
  hacker_news:
    scoring:
      base_score: 30  # 调整基础分

  # 添加自定义源
  my_custom_source:
    enabled: true
    name: "我的数据源"
    # ...

✅ 优点:自动获取 skill 更新的新源

配置文件

  • sources.yaml - 数据源配置
  • scoring.yaml - 评分规则配置

添加新数据源

编辑 ~/.config/daily-topic-selector/sources.yaml

my_new_source:
  enabled: true
  name: "新数据源"
  description: "描述"

  fetch_methods:
    - method: rss
      priority: 1
      config:
        url: "https://example.com/feed"

  default_tags: ["tag1"]

  scoring:
    base_score: 30

调整评分规则

编辑 ~/.config/daily-topic-selector/scoring.yaml

global_keywords:
  ai_hot:
    keywords: ["OpenAI", "GPT", "Claude"]
    bonus: 15

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

General

embedded-cross-review

No summary provided by upstream source.

Repository SourceNeeds Review
General

image-gen

Generate AI images from text prompts. Triggers on: "生成图片", "画一张", "AI图", "generate image", "配图", "create picture", "draw", "visualize", "generate an image".

Archived SourceRecently Updated
General

explainer

Create explainer videos with narration and AI-generated visuals. Triggers on: "解说视频", "explainer video", "explain this as a video", "tutorial video", "introduce X (video)", "解释一下XX(视频形式)".

Archived SourceRecently Updated