内容提要
这篇文章介绍了如何通过Mastodon的Webhook功能自动同步toots到Memos。作者尝试了不同的方法,最终选择了使用crontab定时触发脚本的方式。脚本会检查提及的字数和媒体内容,并将内容发送到Memos。作者还修改了原脚本,使其可以同步回复toot,并增加了检查消息是否已存在于Memos中的判断。最后,作者将Mastodon作为Daily notes的内容源,实现了完美的同步流程。
延伸解读
为何放弃 Webhook 转向 crontab
作者最初尝试通过 Mastodon 的 Webhook 功能自动同步 toots,但发现该功能需要 Mastodon 4.2.0 及以上版本才提供 status.created 事件,尝试后未能成功。随后考虑通过 RSS 触发 Webhook,但认为实现复杂,超出自身技术能力。最终选择用 crontab 定时触发脚本,虽然不如 Webhook 优雅,但更简单可控,适合个人需求。
脚本的关键过滤与去重逻辑
脚本会检查 toot 中的提及和媒体内容:若存在提及且字数超过 80,则继续处理;否则跳过。对于包含图片的 toot,会提取图片 URL 并拼接为 Markdown 格式。此外,作者增加了检查消息是否已存在于 Memos 中的判断,避免定时任务重复同步相同内容,提升了脚本的实用性。
同步回复 toot 的定制修改
原脚本仅同步原创且公开的 toot,作者删除了过滤回复 toot 的部分,并增加条件判断,使大于 80 字的回复 toot 也能被同步。这一修改让 Mastodon 上的对话内容也能进入 Memos,但字数限制可根据自身需要调整,避免过多短回复干扰记录。
将 Mastodon 作为 Daily notes 内容源
作者习惯在 Mastodon 中记录生活、想法和思考,认为直接写嘟嘟比额外设置收集工具更轻松。通过将 Mastodon 内容同步到 Memos,再从 Memos 同步到思源笔记,最终获得按年月日分组记录的 Mastodon 时间线,便于后续整理和编辑,形成个人知识管理的闭环。
Q&A
如何将Mastodon的内容同步到Memos?
可以通过使用crontab定时触发脚本的方式,将Mastodon的内容同步到Memos。
Mastodon的Webhook功能有什么限制?
Mastodon的Webhook功能在4.2.0版本以上才提供status.created功能,低版本无法使用。
脚本如何检查Memos中是否已存在消息?
脚本通过调用Memos的API,检查内容是否已存在,如果存在则跳过发送。
为什么选择使用crontab而不是Webhook?
作者认为使用crontab定时触发脚本更简单易行,尽管Webhook可能更优雅但复杂度较高。
如何修改脚本以同步回复toot?
可以通过删除原脚本中对回复toot的过滤条件,并增加字数判断来同步回复toot。
Mastodon如何作为Daily notes的内容源?
作者将Mastodon内容同步到Memos,再从Memos同步到思源笔记,形成按日期分组的记录。