Auto-sync: 2026-04-28 16:03

This commit is contained in:
2026-04-28 16:03:03 +08:00
parent f8b421ece6
commit 365caa800a
48 changed files with 1942 additions and 1249 deletions

View File

@@ -1,58 +1,73 @@
---
title: "Blogwatcher Daily 技能收藏"
type: source
tags: [hermes-agent, rss, automation, daily-digest]
tags: [rss, automation, hermes-agent, skill]
date: 2026-04-18
---
## Source File
- [[raw/Skills/blogwatcher-daily收藏.md]]
- [[Skills/blogwatcher-daily收藏.md]]
## Summary用中文描述
- 核心主题RSS/YouTube 订阅频道的自动化监控与每日摘要生成
- 问题域:个人资讯获取效率——手动逐个打开各频道耗时且容易遗漏更新
- 方法/机制:Hermes Agent 自定义 Skill定时抓取 31 个订阅频道SQLite 去重,每日追加写入 Markdown 日报
- 结论/价值:将信息获取自动化,用户每天早上只需阅读一篇摘要即可掌握所有频道动态
- 核心主题:Hermes Agent 自定义技能 blogwatcher-daily实现 RSS/YouTube 订阅自动化监控与每日摘要生成
- 问题域:个人资讯获取与信息聚合
- 方法/机制:RSSHub 转换 YouTube 频道为 RSS + feedparser 解析 + SQLite 去重 + Cron 定时调度
- 结论/价值:每天自动整理 31 个订阅频道的新文章,减少信息过载,提高阅读效率
## Key Claims用中文描述
- Hermes Agent 通过自定义 Skill `blogwatcher-daily` 实现 31 个订阅频道的自动化监控
- 每日扫描Cron Job自动追加新文章到 `YYYY-MM-DD.md` 日报,避免覆盖历史内容
- YouTube 频道通过 RSSHub 本地部署代理转换为 RSS Feed绕过直接访问限制
- SQLite 数据库按 URL 重,已读链接不重复写入
- 强制回扫(`--all`)写入独立文件 `all-YYYY-MM-DD.md`,不污染日常日报
- 支持 `--scan-only` 调试模式,只打印结果不写文件
- Hermes Agent 通过 blogwatcher-daily 技能实现 31 个 RSS/YouTube 频道的自动化监控
- RSSHub 将 YouTube Channel ID 转换为 RSS Feed解决 YouTube 订阅源获取问题
- feedparser 库支持 RSS 1.0/2.0/Atom 格式,自动处理 GB2312/GBK/ISO-8859-1 编码和畸形 XML
- SQLite 数据库按 URL 重,已读链接不重复写入,避免信息冗余
- Cron 定时任务(每天早上 6:00自动调用 skill 脚本,结果推送 Telegram 通知
## Key Quotes
> "📊 扫描完成: 共发现 12 篇新文章" — 日常扫描输出示例
> "新增订阅需要补历史、某个频道很久没看想批量回顾" — 强制回扫适用场景
> "wikiHow 禁止所有爬虫,无法抓取,永远返回 0 篇" — 已知限制说明
> "RSS 解析库feedparser支持 RSS 1.0/2.0/Atom、GB2312/GBK 编码、畸形 XML" — 技术选型说明
> "追加写入:日常扫描正确追加到日报,不覆盖历史内容" — 数据持久化策略
> "wikiHow 禁止所有爬虫,无法抓取,永远返回 0 篇" — 已知的限制
## Key Concepts
- [[RSS Monitoring]]通过 RSS/Atom Feed 订阅网站和 YouTube 频道更新的标准化协议
- [[Cron Job]]:定时任务调度,每天早上 6:00 自动执行扫描
- [[RSSHub]]:开源 RSS 生成器,将不支持 RSS 的网站(如 YouTube转换为 RSS Feed
- [[feedparser]]Python RSS 解析库,支持 RSS 1.0/2.0/Atom 及 GB2312/GBK 编码
- [[Deduplication]]SQLite 按 URL 排重,避免重复写入
- [[每日日报]]:追加模式日记文件,每天一篇,持续积累
- [[增量写入]]:日常扫描追加到日报,强制回扫写入独立文件,二者互不干扰
- [[RSSHub]]开源 RSS 生成器,将无 RSS 的网站/YouTube 频道转为 RSS Feed部署在 `http://192.168.3.45:1200`
- [[feedparser]]Python RSS/Atom 解析库,支持多种编码和畸形 XML是本技能的核心解析引擎
- [[SQLite 去重机制]]:通过 SQLite 数据库按 URL 排重,已读链接不重复写入每日日报
- [[Hermes Agent]]AI Agent 平台blogwatcher-daily 是其自定义技能之一,通过 cron 定时调度执行
- [[Cron 定时任务]]:每天 `0 6 * * *` 执行Job ID `ecdd35bb7df3`,通过 `deliver=origin` 推送 Telegram 通知
## Key Entities
- [[Hermes Agent]]运行 blogwatcher-daily Skill 的 AI Agent 平台,通过 Cron Job 调度
- [[RSSHub]]:本地部署的 RSSHub 实例`http://192.168.3.45:1200`),用于转换 YouTube 频道为 RSS
- [[blogwatcher-daily]]Hermes Agent 自定义 Skill核心脚本为 `blogwatcher-daily.py`
- [[feedparser]]Python RSS 解析库,解决 RSS 1.0、GB2312 乱码、畸形 XML 等兼容性问题
- [[Hermes Agent]]技能运行平台,提供 cron 调度和 Telegram 通知能力
- RSSHub`http://192.168.3.45:1200`:本地部署的 RSSHub 实例,用于转换 YouTube 频道为 RSS
- blogwatcher-daily 脚本:主脚本位于 `~/.hermes/skills/custom/blogwatcher-daily/scripts/blogwatcher-daily.py`
## Connections
- [[blogwatcher-daily收藏]] ← depends_on ← [[RSSHub]]
- [[blogwatcher-daily收藏]] ← depends_on ← [[feedparser]]
- [[blogwatcher-daily收藏]] ← depends_on ← [[每日日报]]
- [[blogwatcher-daily收藏]] ← extends ← [[multi-source-tech-news-digest]]
- [[Hermes Agent]] ← runs ← [[blogwatcher-daily]]
- [[blogwatcher-daily]] ← uses ← [[RSSHub]]
- [[blogwatcher-daily]] ← uses ← [[feedparser]]
- [[blogwatcher-daily]] ← stores state in ← [[SQLite 去重机制]]
- [[blogwatcher-daily]] ← scheduled by ← [[Cron 定时任务]]
## Contradictions
- 与 [[multi-source-tech-news-digest]]
- 冲突点:两者都是 RSS 多源新闻聚合方案
- 当前观点blogwatcher-daily 侧重 YouTube + RSS 直订的本地化方案,覆盖 31 个固定频道
- 对方观点multi-source-tech-news-digest 侧重多平台RSS + Twitter + GitHub的大规模聚合支持动态添加来源
- 说明两者定位互补blogwatcher-daily 是轻量级固定订阅方案,后者是大规模动态监控方案
- 暂无发现与其他 Wiki 页面的冲突
## 技术细节
| 维度 | 技术选型 |
|------|----------|
| RSS 解析 | feedparser支持 RSS 1.0/2.0/Atom |
| YouTube 支持 | RSSHub`http://192.168.3.45:1200` |
| 去重存储 | SQLite`blogwatcher.db` |
| 编码处理 | 自动检测 GB2312、GBK、ISO-8859-1 |
| 定时调度 | Cron `0 6 * * *` |
| 通知方式 | Telegram`deliver=origin` |
## 已解决的问题
- ✅ RSS 1.0 支持Slashdot 使用 RSS 1.0feedparser 解决
- ✅ GB2312 乱码feedparser 自动处理
- ✅ 畸形 XMLfeedparser 兜底
- ✅ YouTube RSSHub绕过 YouTube 直接访问限制
- ✅ 追加写入:日报模式不覆盖历史
- ✅ 独立 force-all强制回扫写入独立文件
## 已知限制
- wikiHow 禁止爬虫,永远返回 0 篇
- FeedBurner 频道電腦玩物、阿榮福利味RSSHub 可能不稳定
- `--all` 强制回扫不要加入 cron仅作例外操作