前言¶
DeepSeek Harness (DSH) 的核心理念是“一切皆插件”。當媒體服務器(如 Jellyfin、Emby)無法正確識別你的資源目錄結構時,手動重命名既耗時又容易出錯。dsh-plugin-media-naming 插件旨在解決這一問題,它通過預設的規則包,將指定的目錄名和視頻文件名規範化爲媒體服務器能識別的形式,並支持 115 網盤與本機/NAS 環境。
插件概覽¶
- 名稱:
dsh-plugin-media-naming - 核心價值:媒體庫統一命名,規範化目錄名與視頻文件名
- 環境支持:自動識別 115 網盤或本機/NAS/Linux 路徑
- 維護者:CustomLZH
- 許可證:MIT
核心功能¶
- 媒體庫統一命名:規範化目錄名與視頻文件名。
- 雙環境支持:自動識別 115 網盤或本機/NAS/Linux 路徑,無需手動切換。
- 先出計劃再執行:生成審覈清單,確認後執行,避免誤操作。
- 支持斷點續跑與回滾:通過
apply-state.json和rollback.json管理執行狀態。
安裝與依賴¶
前置條件¶
| 依賴 | 是否必需 | 說明 |
|---|---|---|
| DSH | 必需 | 插件宿主 |
| Node.js ≥ 18 | 必需 | 插件本體與本地後端都是 JS |
Python ≥ 3.10 + p115client |
僅 115 網盤需要 | 只處理本機 / NAS 文件時完全不需要 Python |
安裝步驟¶
- 克隆倉庫到任意目錄:
git clone https://github.com/CustomLZH/dsh-plugin-media-naming.git
- 在 DSH 的插件管理中將其作爲 bundle 安裝並啓用(通過
plugin_manager的install_bundle→set_bundle→set_plugin)。 - 重啓 DSH。插件代碼有模塊緩存,修改代碼後同樣需要重啓才能加載。
環境自檢¶
安裝完成後,可以通過以下命令驗證環境:
npm test # 一鍵運行全部測試
node test/local-storage-test.mjs # 只跑本地/NAS 後端
典型用法¶
插件提供了一套工具來處理從掃描到執行的全流程。
1. 首次準備(僅 115 網盤)¶
如果需要操作 115 網盤資源,需先進行掃碼登錄:
py -u python/login_115.py # 終端顯示二維碼,掃碼確認
py -u python/login_115.py --png qr.png # 生成二維碼圖片(用於展示)
py -u python/login_115.py --self-check # 僅檢查環境,不聯網
憑據成功後會自動寫入本地 config.json。
2. 生成審覈清單¶
使用 media_naming_quick 工具指定目標路徑,生成審覈清單:
// 整理 影視資源/電視劇/某劇 (2026)
dsh media_naming_quick target="影視資源/電視劇/某劇 (2026)"
該命令會返回一個審覈清單,列出需要修改的文件和目錄,以及變更依據。
3. 執行修改¶
在確認審覈清單無誤後,使用 media_naming_apply 完成修改並自動複驗:
// 可以
dsh media_naming_apply confirm=true
工作流與安全機制¶
分工協作¶
- 插件:負責提供規則、計算計劃、判定對錯。
- Agent:負責按流程編排,展示審覈清單,確認後執行。
- 你:負責指定目錄並審覈點頭。
執行閘門¶
執行寫操作前必須滿足兩個條件:
1. 用戶確認:Agent 必須先將審覈清單展示給你看過。
2. 計劃乾淨:conflict = 0、unknown = 0、無重複目標。
處理範圍¶
- 只處理規則包裏聲明的視頻文件,字幕/NFO/海報保持不動。
- 憑據只寫入本地配置文件,不回顯、不落任何產物。
- 修改代碼後必須重啓 DSH 才能生效。
規則包與配置¶
插件內置了 rules/ 目錄,包含規則配置和樣例數據。libraries 是映射而非白名單,只要路徑中任一段命中即生效。如需更換規則包,可新建 rules/<id>/ 並登記,或在調用時傳入 rulePackPath。