如何用 Notion 同步豆瓣标记

简单来说是用 Notion 的 RSS 插件同步豆瓣标记数据

前言

核心思路是利用 RSS 获得豆瓣标记数据,利用 Notion 的 RSS 插件拿到豆瓣标记数据,这样数据就增量同步到 Notion

大致效果

我的这个「豆瓣标记数据自动同步 Notion」效果大概如下:

注意

  1. 如果不太理解什么是 RSS 的话,或许可以看一下这篇文章 高效获取信息,你需要这份 RSS 入门指南 - 少数派 ,如果还是不明白那就不明白吧

  2. 需要使用电脑才能完成本教程

操作流程

2.1 制造数据

也就是正常使用豆瓣,在豆瓣上标记影音即可

2.2 获取新增的数据

我个人目前是基于 RSSHub 提供的豆瓣 RSS 来做,有兴趣的也可以试一试豆瓣官方 RSS

RSSHub 提供的 RSS 或者 豆瓣官方提供的 RSS,两者的区别:

  • 这两种方式提供的数据内容和数据格式有所区别

  • RSSHub 能够抓取到用户所有的广播,不仅是影音标记

  • RSSHub 的文档地址: 社交媒体 | RSSHub ,在这个链接里找到「用户广播」

  • 豆瓣官方的 RSS 地址,在页面的右下角可以获得

  • RSSHub 需使用用户 ID,怎么获取呢

这样就能拿到一个 RSS 链接了:https://rsshub.app/douban/people/1000001/status

2.3 同步新增数据到 Notion

这里主要利用到的是 NotionFeed 这个工具,它可以将RSS内容同步到Notion中,实现在Notion中阅读RSS订阅文章的效果

如果不会使用的话,可以参考这个视频 NOTION RSS 作为浏览器订阅|NOTION FEED 配置使用演示_哔哩哔哩

但由于一旦数据来到 Notion 中,那么它就是可编辑的,因此我们就可以在它的基础上做一些工作

2.4 格式化 Notion 中的豆瓣数据

刚拿到的的原始数据大概长这个样子,可以看到里面充斥着各种广播(如果你是一个发广播的人的话)

那么我们要做的第一件事是筛选出来影音标记,这个可以通过增加 Filter 实现,想要筛选看过的影音的话,就用「看过」来筛选,同理也可以筛选「听过」、「想看」、「玩过」之类的

筛选完之后的数据大概是这样子,虽然数据已经拿到,但这个数据非常粗糙,所有的文字都集中在 Title 列中

从豆瓣用插件导出,放到 Notion 中的 Page 长这样(以后我都叫它标记 Page),所以我们目前的目标就是为了让两者适配,也就是有着同样的格式

如果说你的格式和我的不一样,那么你善用属性的排序和隐藏即可实现

2.5 标题处理

可以看到标记 Page 的第一列是标题,所以我们的第一步是提取出来标题,这里是这样做的,新建一个 Type 为 Formula 的列

点击 Formula 的「Edit」,因为标题两边都是书名号,所以可以通过书名号提取出标题,输入 replace(replace(prop("Title"), ".*《", ""), "》.*", ""),就能够得到标题列

2.6 解析短评

由于书名号之后的就是短评,所以我这里先将打分和评论一起提取了出来,方便下一步处理,也是增加一个 Formula 列,公式为 replace(prop("Title"), ".*》", ""),也就是拿到书名号后面的所有内容

然后在评论之上拿到短评,这里用了个讨巧的办法,因为一般来说大家都会打分,而这在评论开头的五个字符就是★或者☆,所以直接截取评论第五个之后的内容即可,slice(prop("评论"), 5)

2.7 解析打分

打分这个要麻烦一些,我从豆瓣导出的数据中,是直接的数字而不是★,所以==我在标记 Page 中加了一个公式==,![image.png](../assets/image_1656846959541_0.png) ,将数字转换成星星

因为星星有时候是实心,有时候是空心,所以我们就不能通过字符替换的方式来进行星星的截取,这里我用的方法是计算评论存在几个「★」,具体是这么做的 length(replaceAll(prop("评论"), "[^★]", "")),这样就把星星转换成了数字评分

最终效果长这样,日期是自带的

2.8 手动同步

接下来就是手动同步,我们的目标格式是这样的

由于星星是自动生成的,需要事先空出来,所以我增加了一列空白列作为 PlaceHolder,接下来只要复制再粘贴到「标记 Page」中即可,==注意,这里是可以一次性全部复制的,不需要一行一行的复制==

到这里就大功告成了

补充

总之就是活用公式来做到数据的处理。

但现在还存在一些问题,大部分是因为 RSSHub 提供的内容有限,比如说图片没有特别好的解析方法,评论后面的字会被吞掉。

comments powered by Disqus
May The Freedom Be With U
Built with Hugo
Theme Stack designed by Jimmy