Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Syncing Wechat Book Notes, Github Trending, Memos to Notion automatically. 支持将微信读书笔记(划线评论、阅读详情等)、github trending、memos发表同步到Notion。

License

Notifications You must be signed in to change notification settings

alex-guoba/sync-notion

Repository files navigation

Example Page

将微信读书笔记、github trending、memos自动同步到Notion

本项目支持将微信读书笔记(划线及评论)、github trending以及memos同步Notion。支持本地手工、github action定期两种方式。可以修改action配置自行按需选择。

English | 简体中文

Requirements

Python 3.10

同步微信读书笔记

使用

  1. star本项目

  2. fork这个工程,删除目录中的临时存储文件(./var/sync_read.db)

  3. 获取微信读书的Cookie: WEREAD_COOKIE

  • 浏览器打开 https://weread.qq.com/
  • 微信扫码登录确认,提示没有权限忽略即可
  • 按F12进入开发者模式,依次点 Network -> Doc -> Headers-> cookie。复制 Cookie 字符串;
  1. 获取NotionToken: NOTION_TOKEN
  1. 复制这个Notion模板,删掉所有的数据,并点击右上角设置,Connections添加你创建的Integration。

  2. 获取NotionDatabaseID: NOTION_DATABASE_ID

  1. 同步方式
  • 方式一:在Github的Secrets中添加以下变量来实现每日自动同步

    • 打开你fork的工程,点击Settings->Secrets and variables->New repository secret
    • 添加以下变量(变量名称自定义,只要与action中对应的名称一致即可)
      • WEREAD_COOKIE
      • NOTION_TOKEN
      • NOTION_DATABASE_ID
  • 方式二: 也可以本地运行脚本完成同步:

pip install -r requirements.txt
python3 ./main.py sync_read ${WEREAD_COOKIE} ${NOTION_TOKEN} ${NOTION_DATABASE_ID}

高级特性

  1. 可以配合 next-blogger 搭建自己的读书笔记分享网站。样式参考 goroutine.cn

  2. 【可选】可以指定单独的Notion数据库,用于存储每日同步记录,用作calender视图等场景。

  • action中环境变量NOTION_DATABASE_CALENDAR,命令行方式参考action。模板参考这个

  • 注意:也需要在Connections添加你创建的Integration。流程与上面一致。

  1. 支持Server酱微信通知,用于在同步完成时发送微信通知更新读书笔记数。
  • action中环境变量SCKEY,参考action。申请方式参考Server酱

增量同步说明

更新时机

  1. 微信读书笔记为增量同步,每次同步时,会根据笔记的更新时间进行筛选。仅当微信读书中书籍有笔记更新时才会触发同步。
  2. 可以删除db中已同步过的书籍页面(page),删除后下次同步时会全同步(注意需要在微信读书中触发一次笔记更新,比如新增、删除任意笔记即可)。

增量机制

  1. 已同步到Notion的笔记,用户可以在Notion中新增、修改笔记内容,下次同步时,不会覆盖已同步过的笔记
  2. 增量笔记同步顺序:新增章节会按照微信读书的章节顺序插入;新增笔记会插入到对应的章节下,但不保证同一章节下的笔记与微信读书一致。
  3. 用户可以在database中新增字段,用做书籍的自定义标识。但不得修改已有字段。
  4. 已同步到Notion的笔记,用户不得删除章节信息,否则下次同步同一章节的增量笔记无法精确定位。

原理说明

Notion无法保存微信读书的笔记id等信息,所以在仓库中存储了一份微信读书笔记ID与Notion Block ID的映射关系。每次更新完毕后在git action中自动提交到仓库。 所以如果用户clone了本仓库到,首次运行时可以先删除原仓库中的映射文件(./var/sync_read.db)。

支持的配置项

[weread.format]
ContentType = list
EnableEmoj = false
EnableReadingDetail = true
  • ContentType:增加笔记内容block组织形式配置,可以将内容展现形态指定为paragraph/list/callout。
  • EnableEmoj:开启、禁用emoj
  • EnableReadingDetail: 开启、禁用阅读明细。

同步Github Trending

使用

与微信读书同步方法基本一致。

  1. 获取NotionToken(可复用)

  2. 创建NotionDatabase,获取NotionDatabaseID, notion模板参考这个

  3. 本地运行方式

pip install -r requirements.txt
python3 ./main.py sync_trending ${NOTION_TOKEN} ${NOTION_DATABASE_TRENDING} --git_token=${GIT_TOKEN}
  1. 或者在Github的Secrets中添加以下变量来实现每日自动同步
  • 打开你fork的工程,点击Settings->Secrets and variables->New repository secret
  • 添加以下变量 (变量名称自定义,只要与action中对应的名称一致即可)
    • NOTION_TOKEN
    • NOTION_DATABASE_TRENDING
    • GIT_TOKEN 如果不需要仓库的其他信息(包括fork、star、watcher数量),GIT_TOKEN可以不配置

支持的配置项

[trending.language]
languages = python,go
  • languages: 关注的项目语言,不允许为空

同步Memos发表到Notion

使用

与微信读书同步方法基本一致。

  1. 获取NotionToken(可复用)

  2. 创建NotionDatabase,获取NotionDatabaseID, notion模板参考这个

  3. 在Memos平台为用户分配一个独立的Token供访问Memos使用。

  4. 修改配置文件,设置memos host地址以及拉取人UserName。注意分配Token的用户身份与拉取人UserName一致才可以拉取到Private memo。

  5. 本地运行

python3 ./main.py sync_memos ${NOTION_TOKEN} ${DATABASE_ID} ${MEMOS_TOKEN}
[memos.opts]
MemosHost = http://127.0.0.1:8081
; 用户名,而非昵称
MemosUserName = memos-demo

也可配置github action来实现定期同步,有需要修改github action以及配置对应环境即可。

# git中配置好对应的环境变量,设置对应的action run指令即可
python3 ./main.py sync_memos "${{secrets.NOTION_TOKEN}}" "${{DATABASE_ID}}" "${{MEMOS_TOKEN}}"

同步ProductHunt产品列表到Notion

使用

与微信读书同步方法基本一致。产品列表参考ProductHunt

  1. 获取NotionToken(可复用)

  2. 创建NotionDatabase,获取NotionDatabaseID, notion模板参考这个

  3. 本地运行

python3 ./main.py sync_producthunt ${NOTION_TOKEN} ${DATABASE_ID}
[producthunt.filter]
; 过滤条件,可选
MinVotes = 5
MinComments = 5

也可配置github action来实现定期同步,有需要修改github action以及配置对应环境即可。

# git中配置好对应的环境变量,设置对应的action run指令即可
python3 ./main.py sync_producthunt "${{secrets.NOTION_TOKEN}}" "${{DATABASE_ID_PH}}"

感谢

About

Syncing Wechat Book Notes, Github Trending, Memos to Notion automatically. 支持将微信读书笔记(划线评论、阅读详情等)、github trending、memos发表同步到Notion。

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 2

  •  
  •  

Languages