粘贴URL自动识别源类型:ClawFeed智能源检测构建你的信息源池(9种源类型全清单)
【免费下载链接】clawfeedClawFeed — AI-powered news digest with structured summaries from Twitter/RSS feeds and web dashboard项目地址: https://gitcode.com/gh_mirrors/cl/clawfeed
ClawFeed是一款开源的 AI 新闻摘要工具:你在信息源管理页面粘贴一个 URL,它的智能源检测功能就能自动识别出这个 URL 属于 Twitter 个人主页、RSS、Reddit、Hacker News 还是普通网站,并自动填好名称、类型和配置,帮你快速搭建专属的信息源池。本文完整拆解这套「粘贴 URL 自动识别源类型」的工作机制,并附 9 种源类型全清单。
为什么需要智能源检测:告别手动配源
传统信息工具添加一个源,往往要手动填写「类型选什么、配置写什么」。对新手来说,面对 Twitter 主页、RSS 地址、论坛链接,根本分不清该选哪个。
ClawFeed 的思路很简单:你只需要粘贴一个 URL,剩下的交给系统判断。无论是 AI 摘要、信息筛选还是噪音过滤,一切的基础都是这个准确且低门槛的源类型识别。
ClawFeed智能源检测的工作原理
核心逻辑在 src/server.mjs 的resolveSourceUrl函数中,前端通过POST /api/sources/resolve接口调用(见 src/server.mjs)。整个识别分三步走:
第一步:高置信域名规则匹配(零请求,秒出结果)
对几个「一看 URL 就知道是什么」的域名,直接用规则识别:
- X / Twitter:解析出账号
@handle识别为twitter_feed;如果 URL 形如列表页(/i/lists/数字)则识别为twitter_list,并自动过滤掉search、explore等保留词误判 - Reddit:从
/r/子版块名提取版块,自动带上sort: hot, limit: 20的抓取配置 - GitHub Trending:从
github.com/trending/语言中提取编程语言(如python),识别为github_trending - Hacker News:识别为
hackernews,默认按 top 排序、过滤低分帖(min_score: 100)
第二步:真实抓取判断内容格式
对于无法靠域名判断的 URL,系统会真实请求一次(5 秒超时、最多跟随 3 次重定向),根据返回的内容格式判断:
| 返回内容 | 识别为 | 附加动作 |
|---|---|---|
XML(RSS/Atom,含<rss>/<feed>/<channel>) | rss | 自动提取 feed 标题作名称,并抓取最近 5 条预览(src/server.mjs) |
JSON Feed(version含jsonfeed) | digest_feed | 识别为其他用户的 ClawFeed 摘要订阅源 |
| 普通 HTML 页面 | website | 提取<title>作为源名称 |
第三步:给出结构化结果
识别成功后返回name(源名称)、type(源类型)、config(抓取配置)、icon(图标)四元组;实在无法识别则返回 422 错误,前端提示「无法自动识别」,可切换手动添加。
9种源类型全清单:一张表看懂
前端定义了全部 9 种源类型(web/index.html),这也是构建信息源池的完整「零件库」:
| 图标 | 类型 | 示例 | 说明 |
|---|---|---|---|
| 🐦 | twitter_feed | @karpathy | Twitter/X 用户主页 |
| 🐦 | twitter_list | 列表 URL | Twitter 自定义列表 |
| 📡 | rss | 任意 RSS/Atom 地址 | 标准 RSS 订阅源 |
| 🔶 | hackernews | HN 首页 | Hacker News 精选 |
| 👽 | reddit | /r/MachineLearning | Reddit 子版块 |
| ⭐ | github_trending | language=python | GitHub 热门仓库 |
| 🌐 | website | 任意网页 | 网页抓取 |
| 📰 | digest_feed | 用户摘要 slug | 订阅他人的 ClawFeed 摘要 |
| 🔌 | custom_api | JSON 接口 | 自定义 API(支持带请求头) |
前 7 种基本都能被「粘贴 URL」自动识别;custom_api与digest_feed则覆盖更进阶的玩法——比如订阅另一位 ClawFeed 用户的 JSON Feed,形成信息源的「链式订阅」。每个源都会落库到 migrations/003_sources.sql 定义的sources表,包含类型、配置、激活状态与抓取统计等字段。
三步操作:粘贴URL添加信息源(实测流程)
整个添加流程封装在 web/index.html 的「粘贴 URL 添加信息源」卡片中:
- 粘贴:在输入框填入任意 URL,点击「识别」(或直接回车触发 detectSource())
- 预览确认:识别成功后展示源图标、类型徽章、源名称(支持点击直接改名);如果是 RSS 或 JSON Feed,还会列出最近 5 条内容预览,让你「先尝后买」
- 一键添加:选择是否设为公开源,点击确认,系统即通过
POST /api/sources完成入库(web/index.html)
从粘贴到入库,通常只需 3 次点击。
从单个源到信息源池:Source Packs 玩法
当你用智能源检测攒出一批高质量源后,还可以用Source Packs(源包)把它们打包分享给社区:
- 通过
POST /api/packs把自己的一批源打包发布(src/server.mjs) - 其他人浏览公开源包后,调用
POST /api/packs/:id/install一键安装,即可批量订阅整套源
这意味着信息源池不再是个人玩具,而可以像「精选歌单」一样在社区里流转复用。
小结
ClawFeed 的智能源检测把「添加信息源」的门槛降到了粘贴一个 URL:
- ✅ 域名规则 + 内容抓取双通道识别,7 种常见源类型全自动
- ✅ 识别结果带名称、配置、图标、内容预览,所见即所得
- ✅ 9 种源类型 + Source Packs,让信息源池可持续扩展与分享
想深入了解可阅读这些资料:
- 多租户架构设计:docs/ARCHITECTURE.md
- 产品设计文档:docs/PRODUCT.md
- 内容筛选规则模板:templates/curation-rules.md
- 端到端测试脚本(含源相关用例):test/e2e.sh
【免费下载链接】clawfeedClawFeed — AI-powered news digest with structured summaries from Twitter/RSS feeds and web dashboard项目地址: https://gitcode.com/gh_mirrors/cl/clawfeed
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考