因微信阅读相关api失效,本项目使用方式需要一定动手能力
之前阅读的热力图使用的是Weread2NotionPro项目进行生成。
考虑到从Notion全面转向Obsidian,而且Obsidian中的Weread插件相比之下更加友好并能够使用dataviewjs自定义展示方式,而我也因此搞了个obsidian-readingcard的模板用以展示微信阅读的各项进度。
- 手机Quantumult X中添加重写脚本
https://raw.githubusercontent.com/ZiGmaX809/PrivateRules/refs/heads/master/QuantumultX/Scripts/Get_WeRead_Infos/weread_login_monitor.conf- 在Github -> Settings -> Developer Settings
-> Persional access tokens -> Tokens(classic)中新建一个token,其中
Select scopes仅需选择gist。 - Quantumult X中安装
BoxJS模块,并在www.boxjs.com管理页面中添加以下订阅,并打开其中的微信读书登录信息监控,填入上面申请的GitHub Token后保存。
https://raw.githubusercontent.com/ZiGmaX809/PrivateRules/refs/heads/master/QuantumultX/boxjs.json-
使用微信阅读,直到出现Quantumult X通知。【使用过程中,脚本会在微信阅读App请求
https://i.weread.qq.com/login时自动获取vid、request_body、request_headers等信息,并将其同步至你的Github Gists。(因为该地址并非实时请求,而是存在一个生命周期)】 -
打开
https://gist.github.com/你的GithubID网址就能看到推送上来的weread_login_info.json文件,获取其Raw地址。 -
fork本项目,并在项目
Settings->Secrets and variables->New repository secret中添加上面的Gist文件的Raw地址。
| Secrets键 | 示例值 | 备注 |
|---|---|---|
| GIST_URL | https://gist.githubusercontent.com/ZiGmaX809/akjsjha....sefsfe/raw/773...121/weread_login_info.json | Gist文件的Raw地址 |
- fork本项目;
- 在手机上利用Quantumult X等工具针对微信阅读进行抓包;
- 找到连接为
https://i.weread.qq.com/login的请求(可能需要关闭app后重新打开才会有或者需要等到已有skey失效后app才会进行请求); - 在
Request Header中获取vid值; - 获取
Request Body的json格式文本; - 点击
Settings->Secrets and variables->New repository secret中添加以下内容:
| Secrets键 | 值 | 备注 |
|---|---|---|
| USER_VID | 365204888 | 9位数字 |
| USER_SKEY | YourSkey | 8位随机码,skey和request_body二选一,但skey仅单次有用,body数据可进行skey自动刷新 |
| REQUEST_BODY | { "random" : xxxxxxxxx,"deviceId" : "xxxxx"...} | 请求体json |
- 在
Settings->Secrets and variables中添加Variables,以下按需自行添加、修改键值,如果无所谓默认样式则无须添加。
| Variables键 | (默认)值 | 备注 |
|---|---|---|
| START_YEAR | 2024 |
开始年份 |
| END_YEAR | 2025 |
结束年份 |
| NAME | 微信阅读热力图 | 卡片标题 |
| TEXT_COLOR | #2D3436 | 默认文字颜色 |
| TITLE_COLOR | #2D3436 | 标题颜色 |
| YEAR_TXT_COLOR | #2D3436 | 年度阅读时间颜色 |
| MONTH_TXT_COLOR | #2D3436 | 月份标签颜色 |
| TRACK_COLOR | #EBEDF0 | 无阅读颜色 |
| TRACK_SPECIAL1_COLOR | #9BE9A8 | 一级颜色 |
| TRACK_SPECIAL2_COLOR | #40C463 | 二级颜色 |
| TRACK_SPECIAL3_COLOR | #30A14E | 三级颜色 |
| TRACK_SPECIAL4_COLOR | #216E39 | 四级颜色 |
| DEFAULT_DOM_COLOR | #EBEDF0 | 默认格子颜色 |
- 项目自动运行后会在根目录下生成
heatmap.svg文件,直接在Obsidian中进行引用即可。
自行逐个替换TRACK_SPECIAL1_COLOR至 TRACK_SPECIAL4_COLOR的值
| 颜色值 | 预览 |
|---|---|
#9BE9A8 |
|
#40C463 |
|
#30A14E |
|
#216E39 |
| 颜色值 | 预览 |
|---|---|
#FFF7B2 |
|
#FFEE4A |
|
#FFD700 |
|
#FFA500 |
| 颜色值 | 预览 |
|---|---|
#B5E1FF |
|
#5AB6FD |
|
#34A7FF |
|
#0077CC |
| 颜色值 | 预览 |
|---|---|
#F7D6F8 |
|
#E5A3E6 |
|
#CA5BCC |
|
#A74AA8 |
本项目灵感来自于Weread2NotionPro,在此再次表示衷心感谢!