dsh-weread-gather:在 DSH 側欄管理微信讀書書架與筆記

前言

微信讀書裏的書架、劃線和想法長期留在官方客戶端裏,想本地檢索、按年回顧,或導出成帶 front-matter 的 Markdown 給別的工具用,往往要另寫腳本或手工複製。DeepSeek Harness(DSH)支持通過插件擴展 Web 側欄與宿主能力;dsh-weread-gather 在宿主側用只讀 Agent 網關拉取你自己的賬號數據,落到本機目錄,並在側欄提供「數字書房」界面,不寫回微讀、不做上報。

下面介紹插件定位、安裝配置、主要功能與數據落點,便於在 DSH >= 0.2.2-rc.1 上自行啓用與覈對隱私邊界。

這是什麼

  • 名稱:dsh-weread-gather(側欄顯示「數字書房」)
  • 維護者:fountainhead-gq
  • 當前版本(package.json):1.1.4,許可證 MIT
  • 定位:把微信讀書賬號數據同步到本地 $DSH_HOME/weread-gather/,在 DSH 側欄裏瀏覽、搜索、按年總覽,並支持 Markdown 導出與一鍵備份/恢復
  • 目錄頁:https://www.skillhub.cn/plugins/fountainhead-gq/dsh-weread-gather
  • 源碼:https://github.com/fountainhead-gq/dsh-weread-gather

插件爲純 JS、無構建步驟;API Key 與全部 JSON 數據由宿主持有,頁面通過同源接口只讀訪問。

核心功能

側欄與界面

  • 側欄入口「數字書房」(sidebar.panellist,order 26),主面板同 key 打開
  • 書架:10 個大類(文學/其他/藝術/科技/成長心理/歷史/生活/社科/經管理財/哲學宗教),每行 10 本(窄屏降爲 8/6/4);支持書名/作者/分類搜索、按最後閱讀年份篩選、多種排序
  • 總覽:右上角切換年份後,KPI、月度分佈、錶盤與置頂年度閱讀熱力圖聯動;累計閱讀時段分佈不隨年份變化(接口僅提供 all-time)
  • 筆記 / 想法:分頁列表與瀑布流,可篩選、搜索、單條複製,點卡片可進書籍詳情
  • 書籍詳情:展示元信息與該書全部劃線、想法,支持一鍵在微讀打開、「導出這本書」生成整本 Markdown
  • 全局搜索:頂欄同時搜書名、作者、分類、劃線與想法正文,結果按書籍/劃線/想法分類展示
  • 配色通過重映射 --dsw-alias-* 跟隨宿主亮/暗主題

同步與數據

數據來自微信讀書 Agent 網關 https://i.weread.qq.com/api/agent/gateway,全部只讀(書架、書籍元信息、劃線、想法、閱讀統計等)。熱力圖與年度視圖按需拉取月度/年度閱讀秒數,結果緩存在 heat.json(已過年份永久緩存,當年約 30 分鐘過期)。

同步爲增量:依據 sync-state.json 比對每本書的 lastNoteTime / noteCount / reviewCount,未變化的書不重拉劃線;默認單次最多細讀 60 本(maxBooks),可在設置中「強制全量重建」或調大上限。資料中實測:約 779 本書庫首次全量約 8.4 秒,無變化時同步約 2~3 秒。

導出與備份

  • 劃線/想法可勾選後「導出所選」,或按書/按搜索結果導出;導出面板可控制是否包含原文、想法、書籍信息、章節、星級、微讀鏈接,支持預覽前 30 行、複製、下載或保存到導出目錄(默認 $DSH_HOME/weread-gather/exports/)
  • Markdown 含 YAML front-matter(title、bookId、exportId、contentHash 等),塊引用僅用於原文,想法單獨標記
  • 設置中支持下載備份包、兩步確認導入(導入前自動另存當前數據)、清空數據

HTTP 接口(同源)

前綴 /dsh-weread/api,例如 GET /state(配置掩碼與同步進度)、GET /data、GET /heat?year=、POST /sync({ "full": true } 可強制全量)、POST /export、GET|POST /backup 與 /restore 等。空 selector 調用導出會報錯,不會默認導出全部。

安裝與啓用

要求 DSH >= 0.2.2-rc.1(Web 端)。安裝後需重啓 DSH,側欄出現「數字書房」。

# 從 npm 安裝
dsh plugin --profile <你的 profile> add dsh-weread-gather

# 或從 GitHub 安裝
dsh plugin --profile <你的 profile> add github:fountainhead-gq/dsh-weread-gather

也可將 Release 的 .tgz 拖入設置頁,或鏈接本地源碼目錄:

dsh plugin --profile <profile> add link:D:/path/to/dsh-weread-gather

首次打開需配置 微信讀書 Agent 網關 API Key(wrk- 開頭):

  1. 優先在 DSH 應用進程環境變量中設置 WEREAD_API_KEY,則無需手填
  2. 否則在「書房 → 設置」粘貼,寫入本機 config.json
  3. Key 僅在宿主側使用;GET /state 返回掩碼後的 Key,不進入頁面邏輯

典型用法

  1. 安裝並重啓後打開「數字書房」,完成 API Key 配置。
  2. 觸發同步(界面或 POST /dsh-weread/api/sync);進度可在頁頂進度條或 /state 查看。
  3. 在總覽切換年份查看熱力圖與 KPI;在書架按分類或年份篩選。
  4. 在筆記/想法中搜索後勾選條目,使用「導出所選」生成 Markdown;或在書籍詳情使用「導出這本書」。
  5. 遷機或換環境前在設置中「下載備份」,新環境導入前確認兩步提示(會自動備份當前數據)。

書架大類由微讀葉子分類按「-」前前綴摺疊,映射表在倉庫 index.js 的 CATEGORY_GROUPS,加載時派生,改分組無需重新同步。

適用場景與注意

適合:已在用 DSH Web 端、希望把微信讀書閱讀數據留在本機、需要檢索/年度回顧/Markdown 進自有筆記鏈路的用戶。

權限與信任:插件以當前 DSH 進程權限運行,會讀本機 config.json 中的 API Key 並向微讀網關發起請求;安裝前請查看 倉庫源碼 與 MIT 許可證,自行判斷是否符合使用條款。該項目非微信讀書官方出品。

已知限制(摘自 README):

  • 「其他」類多爲微讀無法提供分類的導入文檔/PDF,難以自動歸類
  • 默認僅對最近有筆記的若干本書(默認 60)做細讀同步,其餘記在 pending,需強制全量或增大 maxBooks
  • 刪除 sync-state.json 不丟 data.json,但下次同步會按全量流程走一遍
  • 閱讀時段圖僅展示累計 all-time,不隨年份切換

數據目錄結構如下,卸載插件後刪除該目錄即可清空本地書房數據:

$DSH_HOME/weread-gather/
  config.json   # apiKey、maxBooks、notesPerBook、metaLimit、exportDir
  data.json     # 書架、劃線、想法、閱讀統計
  meta.json     # 書籍元信息緩存
  heat.json     # 逐年熱力圖與年度聚合
  sync-state.json
  exports/
  backups/

結尾

dsh-weread-gather 把微信讀書賬號的只讀同步、側欄瀏覽與 Markdown/備份能力收進 DSH 一個插件裏,數據默認只落在 $DSH_HOME/weread-gather/。社區目錄可查 SkillHub 條目,問題與更新以 GitHub 倉庫 爲準。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜