DeepSeek Harness 插件:dsh-plugin-media-naming

前言

DeepSeek Harness (DSH) 的核心理念是“一切皆插件”。當媒體服務器(如 Jellyfin、Emby)無法正確識別你的資源目錄結構時,手動重命名既耗時又容易出錯。dsh-plugin-media-naming 插件旨在解決這一問題,它通過預設的規則包,將指定的目錄名和視頻文件名規範化爲媒體服務器能識別的形式,並支持 115 網盤與本機/NAS 環境。

插件概覽

  • 名稱:dsh-plugin-media-naming
  • 核心價值:媒體庫統一命名,規範化目錄名與視頻文件名
  • 環境支持:自動識別 115 網盤或本機/NAS/Linux 路徑
  • 維護者:CustomLZH
  • 許可證:MIT

核心功能

  1. 媒體庫統一命名:規範化目錄名與視頻文件名。
  2. 雙環境支持:自動識別 115 網盤或本機/NAS/Linux 路徑,無需手動切換。
  3. 先出計劃再執行:生成審覈清單,確認後執行,避免誤操作。
  4. 支持斷點續跑與回滾:通過 apply-state.json 和 rollback.json 管理執行狀態。

安裝與依賴

前置條件

依賴 是否必需 說明
DSH 必需 插件宿主
Node.js ≥ 18 必需 插件本體與本地後端都是 JS
Python ≥ 3.10 + p115client 僅 115 網盤需要 只處理本機 / NAS 文件時完全不需要 Python

安裝步驟

  1. 克隆倉庫到任意目錄:
    git clone https://github.com/CustomLZH/dsh-plugin-media-naming.git
  1. 在 DSH 的插件管理中將其作爲 bundle 安裝並啓用(通過 plugin_manager 的 install_bundle → set_bundle → set_plugin)。
  2. 重啓 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。

參考資料

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

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

小夜