# Blogwatcher Daily 技能收藏 > RSS 订阅监控 + 每日摘要生成 ## 简介 `blogwatcher-daily` 是 Hermes Agent 的一个自定义技能(custom skill),用于自动化监控 31 个 RSS/YouTube 订阅频道,每天定时扫描并生成阅读摘要。 --- ## 核心功能 ### 1. 日常扫描(定时任务) 每天自动抓取各频道**新文章**,追加写入 `YYYY-MM-DD.md`: ```bash python3 ~/.hermes/skills/custom/blogwatcher-daily/scripts/blogwatcher-daily.py ``` 输出示例: ``` 📊 扫描完成: 共发现 12 篇新文章 📝 已写入: /Users/weishen/Workspace/nexus/ishenwei/blogwatcher/2026-04-18.md ``` ### 2. 历史回扫(手动,例外场景) 强制抓取每个频道**最近 10 篇**(无论是否已读),写入独立文件: ```bash python3 ~/.hermes/skills/custom/blogwatcher-daily/scripts/blogwatcher-daily.py --all ``` 输出:`all-YYYY-MM-DD.md`(每次运行覆盖,不追加到日报) ### 3. 只看不写(调试) ```bash python3 ~/.hermes/skills/custom/blogwatcher-daily/scripts/blogwatcher-daily.py --scan-only ``` --- ## 订阅频道 **31 个频道**,分为两类: ### YouTube(18个)— 通过 RSSHub 转换 RSSHub 地址:`http://192.168.3.45:1200` | 频道 | 说明 | |------|------| | Tech With Tim | AI/LLM 开发 | | Jon Law | AI 工具、商业 | | 小白AI笔记 | Hermes Agent 中文 | | Yannic Kilcher | 深度学习 | | 3Blue1Brown | 数学可视化 | | Sentdex | Python/ML | | ... | 共 18 个 | ### RSS 直订(13个) | 频道 | URL | 说明 | |------|-----|------| | 少数派 | 直接 | 科技精选 | | Slashdot | 直接 | 英文科技新闻 | | AWS Blog | 直接 | 云计算 | | SRE Weekly | 直接 | SRE 周报 | | SaltTiger | 直接 | 技术新闻 | | TED Talks Daily | 直接 | TED 演讲 | | ... | | 共 13 个 | --- ## 文件结构 ``` ~/.hermes/skills/custom/blogwatcher-daily/ ├── SKILL.md # 技能说明文档 └── scripts/ ├── blogwatcher-daily.py # 主脚本 ├── subscriptions.txt # 订阅列表(name|URL) └── blogwatcher.db # SQLite 数据库(记录已读状态) ``` **输出目录:** ``` ~/Workspace/nexus/ishenwei/blogwatcher/ ├── 2026-04-18.md # 每日日报(追加模式) └── all-2026-04-18.md # 历史回扫(覆盖模式) ``` --- ## 定时任务 - **Cron ID**:`ecdd35bb7df3` - **调度**:`0 6 * * *`(每天早上 6:00) - **执行**:Hermes Agent 自动调用 skill 中的脚本 - **通知**:Telegram(`deliver=origin`) --- ## 使用技巧 ### 添加新订阅 ```bash # RSS 直订 python3 blogwatcher-daily.py --add "频道名" "https://example.com/feed" # YouTube 频道(自动转 RSSHub) python3 blogwatcher-daily.py --add "频道名" "https://youtube.com/channel/UCxxxx" ``` ### 强制回扫某频道(例外) ```bash python3 blogwatcher-daily.py --all ``` > 适用于:新增订阅需要补历史、某个频道很久没看想批量回顾 ### 调试扫描逻辑 ```bash python3 blogwatcher-daily.py --scan-only ``` > 只打印,不写文件 --- ## 技术细节 - **RSS 解析库**:`feedparser`(支持 RSS 1.0/2.0/Atom、GB2312/GBK 编码、畸形 XML) - **去重机制**:SQLite 数据库按 `url` 排重,已读链接不重复写入 - **YouTube 支持**:通过 RSSHub 将 YouTube Channel ID 转为 RSS Feed - **编码处理**:自动检测 GB2312、GBK、ISO-8859-1,解决乱码问题 --- ## 已解决的问题 - ✅ **RSS 1.0 支持**:Slashdot 使用 RSS 1.0,换用 feedparser 解决 - ✅ **GB2312 乱码**:阿榮福利味等台媒使用 GB2312 编码,feedparser 自动处理 - ✅ **畸形 XML**:异次元等小站 XML 不规范,feedparser 兜底 - ✅ **YouTube RSSHub**:RSSHub 代理 YouTube Feed,绕过直接访问限制 - ✅ **追加写入**:日常扫描正确追加到日报,不覆盖历史内容 - ✅ **独立 force-all**:强制回扫写入独立文件,不污染日报 --- ## 注意事项 - **How to of the Day**:wikiHow 禁止所有爬虫,无法抓取,永远返回 0 篇 - **FeedBurner 频道**:電腦玩物、阿榮福利味使用 FeedBurner 跳转,RSSHub 可能不稳定,建议使用直接 FeedBurner URL - **`--all` 不要加到 cron**:force-all 是例外操作,每日 cron 保持日常扫描即可 --- *收藏日期:2026-04-18*