Notion 管理 RSS 订阅与过滤
基于 GitHub Actions 托管&定时运行 Python 脚本,通过 Notion API 读取 Database 中管理的 RSS 源与关键词列表,将匹配的更新条目保存回 Notion Database,同时触发 Webhook 向 Bot 发送消息提示。
功能说明
- 在 Notion Database 中管理 RSS 源、过滤关键词、保存摘要;
- 通过 GitHub Actions 定时自动读取 RSS 源 - 过滤 - 保存;
- 通过 Webhook 向飞书 🤖 发送通知;
关于过滤规则
虽然 RSS 是来自于主动订阅,但并不代表全部都是”有用信息“,特别是对于订阅学术期刊、官方新闻一类的需求,可能只是对特定关键词感兴趣,这时就需要对特定信息进行过滤,如 Feedly 平台就提供了智能过滤的解决方案 Leo。
当前的脚本中做了两类简单过滤:
- 白名单:在 RSS 源 Database 中设置,白名单的源不会被过滤;
- 关键词:在 关键词 Database 中设置,仅当
Title + Summary
中出现关键词的内容才会被保存;
如果要进一步扩展,在 阅读 Database 中设置了 Entropy
的数值,通过 熵 来判定一篇文章的信息量,而信息量是与个人的知识经验和偏好相关的,Entropy
的计算需要积累一定数据标签后进行学习训练。
配置脚本
- Notion 开通 Internal integration,并保存 Internal Integration Token (
NOTION_SEC
)
Notion – The all-in-one workspace for your notes, tasks, wikis, and databases.
- 复制 Database 模板,并开放权限给上面开通的 Internal integration
Database 的 properties 非常重要
-
Fork GitHub 项目:github.com/rainyear/ch…
-
设置 GitHub Secrets
NOTION_SEC
为 Notion Token;- 【可选】
FEISHU_BOT_SEC
为自己定义的密码; - 【可选】
FEISHU_BOT_API
为 Webhook 地址;
5.【可选】设置飞书机器人,在 chuandashi/main.py at main · rainyear/chuandashi (github.com) 中修改:
APP_ID = "飞书 APP ID"
APP_SEC = "飞书 APP SEC"
API_PASS = " 和 GITHUB SEC 一致"
CHAT_ID = " 如何获取消息 ID"
飞书可能是不需要 VPN 的情况下对于 🤖 的支持最友好的方案,绑定机器人 URL ,可以在飞书客户端发送消息给机器人,即可在服务端看到 chat_id
定时运行
在 GitHub 项目中的 .github/workflows/main.yml
设置定时执行的 Schedule,如 每天下午 2:00 执行,东 8 区 14:00 对应 UTC 6 点,所以 cron
设置为:
on:
schedule:
- cron: "0 6 * * *"
如果有新的订阅内容(白名单或匹配关键词),则会收到飞书提醒:
【原文链接:RSS 2 Notion (cybrain.xyz)】
转载自:https://juejin.cn/post/7037137946893352973