dsh-plugin-wallpaper-cleanup:用訂閱截圖對照工坊目錄清理壁紙

前言

在 Wallpaper Engine 裏訂閱多了之後,Steam 工坊內容目錄往往會堆着大量以數字 ID 命名的文件夾;哪些是「我的訂閱」裏仍保留的,哪些已經取消訂閱卻還在磁盤上,手工對照既慢又容易誤刪。常見做法是打開訂閱列表逐條查 ID,或全靠記憶——既不精確,也不適合定期整理。

DeepSeek Harness(DSH)支持以插件擴展客戶端能力。下面介紹社區維護的 dsh-plugin-wallpaper-cleanup:在 Windows 上對照「我的訂閱壁紙」截圖與工坊文件夾,把判定爲未訂閱的項目移入回收站(可恢復),並提供設置頁、懸浮模態框,以及可選的 agent 工具。

這是什麼

dsh-plugin-wallpaper-cleanup 由維護者 jokerkenny00137 發佈,歸類爲 客戶端 插件(SkillHub 目錄:插件頁)。源碼與說明見 GitHub 倉庫。

插件做一件事:你選擇 Steam 工坊內容文件夾和一張或多張「我的訂閱」界面截圖,插件識別截圖中的磁貼標題,與各子目錄內 project.json 的標題做匹配,列出將保留與將移入回收站的清單;確認後僅把待刪項通過系統回收站 API 移走,不永久刪除。

實現上不依賴第三方 npm 包:OCR 使用 Windows 自帶的 Windows.Media.Ocr,回收站使用 Microsoft.VisualBasic.FileIO,目錄選擇用系統原生對話框,邏輯由隨包 PowerShell 腳本完成。因此 僅支持 Windows(package.json 中版本 0.3.0,許可證 MIT)。

核心功能

圖形界面(推薦)

兩種入口,內容相同:

  • 右下角懸浮按鈕「壁紙清理」——點擊彈出模態框(Esc 或點空白處關閉)。
  • 設置(側欄底部齒輪)→ 左側 壁紙清理。

典型流程:

  1. 工坊文件夾:桌面版 DSH 可調內置原生目錄選擇器;瀏覽器中可點「選擇文件夾…」在頁面內逐級瀏覽,或直接把路徑粘貼到輸入框。
  2. 訂閱截圖:點「選擇截圖…」,可一次選中多張(訂閱列表分頁時,每一頁都要選上)。桌面版讀取本地絕對路徑;瀏覽器版會先上傳到 DSH 數據目錄。
  3. 開始掃描(README 說明每張截圖約 20 秒):識別磁貼右上角藍色勾選徽章、多倍率 OCR 讀標題、合併多頁後與文件夾標題做 IDF 加權模糊匹配,展示「將保留」與「將移入回收站」兩份清單。
  4. 覈對後點 移入回收站(N 個),再 確認執行;被移除的文件夾進入 Windows 回收站,可還原。

若某磁貼 OCR 失敗,頁面會提示「未通過安全校驗」並標明截圖序號與磁貼序號。可展開「識別不準?手動補充標題」,一行一個粘貼標題後重新掃描(標題可帶 ... 截斷)。

多頁訂閱列表須 一次全部選中;只選一頁時,其餘頁的壁紙會被當成未訂閱,且界面會給出「僅提供了 1 張截圖」等警告。

Agent 工具(可選)

對話中可由 agent 調用(scan 只生成計劃,apply 須 confirm: true 才真正移入回收站):

wallpaper_cleanup_scan  { "folder": "C:\\...\\431960", "screenshots": ["C:\\...\\page1.png", "C:\\...\\page2.png"] }
wallpaper_cleanup_apply { "planId": "<scan 返回的>", "confirm": true }

也兼容單張 "screenshot"。scan 支持傳 titles: ["標題1", "標題2", ...] 跳過 OCR。計劃不安全時需顯式 force: true 才能強制執行。

安全邊界(摘要)

  • 只處理 folder 的 直接子目錄,且目錄名須爲純數字(Steam 工坊 ID)。
  • 須有可讀的 project.json 標題,否則跳過並報告,不刪除。
  • 執行前會複檢;僅當所有截圖磁貼與文件夾匹配且數量與徽章總數一致時才允許刪除(否則界面禁用刪除)。
  • 只調用回收站 API,不碰 appworkshop_*.acf 等 Steam 配置;HTTP 接口要求同源請求頭。

安裝與啓用

從 GitHub 安裝(README 推薦):

dsh plugin add github:jokerkenny00137/dsh-plugin-wallpaper-cleanup

也可將插件目錄解壓到本地後,用 bundle 安裝(示例路徑按你的環境修改):

plugin_manager install_bundle  target: link:C:\path\to\dsh-plugin-wallpaper-cleanup

安裝後若未見「壁紙清理」,可刷新頁面(Ctrl+R)。package.json 要求 Node >=22.12.0,以及對 @deepseek-ai/cordis、@deepseek-ai/dsh-tools 的 peer 依賴。

插件以當前 DSH 進程權限運行;安裝前建議在 GitHub 上查看源碼與 MIT 許可證,確認行爲符合你的預期。

典型用法小結

  1. 在 Wallpaper Engine 中打開「已訂閱/已安裝」網格(默認深色主題、藍色勾選徽章),對多頁列表分別截圖。
  2. 在 DSH 中打開壁紙清理,填入 Steam 工坊內容目錄(例如 ...\steamapps\workshop\content\431960 一類的路徑以你本機爲準)。
  3. 一次選中全部截圖 → 開始掃描 → 覈對清單 → 移入回收站 → 確認執行。

截圖需爲默認深色主題的訂閱網格;自定義主題若改了勾選顏色,建議改用手動補充標題或 titles 參數。系統需具備中文 OCR 語言包(中文 Windows 一般自帶);否則宜用標題模式補齊。

適用場景與限制

適合:長期在 Windows 上使用 Wallpaper Engine、工坊目錄體積大、希望按訂閱列表批量清理未訂閱文件夾、且接受「先掃描、再確認、進回收站」流程的用戶。

不適合:非 Windows 環境;無法提供完整多頁截圖或穩定 OCR/標題對照時(插件會主動阻止不安全刪除)。

限制(來自 README):僅 Windows;多頁須一次全選;每個磁貼至少需 OCR 到部分文字或手動標題;只處理帶數字 ID 名且含 project.json 的直接子目錄。

結尾

dsh-plugin-wallpaper-cleanup 把「截圖上的訂閱列表」和「磁盤上的工坊文件夾」對齊,用界面或 agent 工具生成可覈對計劃,再安全移入回收站,適合作爲 DSH 客戶端側的日常維護插件。

  • 目錄頁:https://www.skillhub.cn/plugins/jokerkenny00137/dsh-plugin-wallpaper-cleanup
  • GitHub:https://github.com/jokerkenny00137/dsh-plugin-wallpaper-cleanup

社區插件目錄由 SkillHub 等站點維護,與 DeepSeek / 幻方無官方從屬關係;安裝與使用請自行審閱源碼與權限影響。

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

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

小夜