xcripts
DragonsHoard 維護用腳本。一支腳本一節:做什麼、怎麼跑、依賴什麼。
convert_asset.py
一次性轉檔:把 raw/assets/ 裡從沒進過 git 的截圖,超過寬度才縮小、轉成 WebP,刪掉原檔。只能對 git 狀態是 ?? 或 A 的檔案跑(raw/ 依慣例唯讀)。
用法:python convert_asset.py <path> [<path> ...]
依賴:image_utils.py(同資料夾)。
image_utils.py
convert_asset.py、photo_watcher.py 共用的圖片轉檔邏輯(resize + 轉 WebP)。不是獨立執行的腳本。
photo_watcher.py
背景常駐程式,監看 photos/、memes/ 資料夾,新圖自動轉檔(邏輯同 image_utils.py)。由 launch-dragonshoard.ps1 啟動 Claude Code 時一併帶起、關閉時一併停止,不需要手動執行。
launch-dragonshoard.ps1
啟動 DragonsHoard 用的 Claude Code session,順便帶起 photo_watcher.py,結束時一併關閉。
image_convert/
手動把圖片拖進去轉檔的資料夾,跟主要 ingest 流程無關。
convert_webp.py:把.webp轉成 iThome 可上傳的格式(有透明背景轉.png,其餘轉.jpg),輸出到image_convert/output/(不進 git),不動原檔。拖曳轉檔.bat:把檔案或資料夾拖到這個 bat 上,等同執行convert_webp.py。
依賴:Pillow。
video_convert/
手動把影片拖進去轉檔的資料夾。
convert_video.py:把影片轉成 GIF(palette 兩階段轉換),輸出到video_convert/output/(不進 git),不動原檔。video_utils.py:convert_video.py的核心轉檔邏輯,不是獨立執行的腳本。拖曳轉檔.bat:把檔案或資料夾拖到這個 bat 上,等同執行convert_video.py。
用法:python convert_video.py <path> [<path> ...],或直接拖檔案/資料夾到 拖曳轉檔.bat。
依賴:imageio-ffmpeg(內含可攜式 ffmpeg,不需要系統安裝 ffmpeg 或設定 PATH)。若 import 失敗,執行 pip install imageio-ffmpeg 後再重跑即可,裝好後留在該機器的 Python 環境裡。
telegram_materials_sync.py
把 Telegram Saved Messages 裡的新訊息落地成 materials/ 底下的檔案。設定與登入方式見腳本開頭 docstring。
用法:python telegram_materials_sync.py
依賴:telethon;telegram_config.json(帳號存取權,不進 git,複製 telegram_config.example.json 填入後使用)。
wiki_link_check.py
hoard-lint skill 呼叫的 wiki 連結圖檢查:孤兒頁面、失效連結(正向/反向)、連結目標歧義、新頁面最低連結數要求。掃描範圍是這次 commit 對 wiki/ 的異動。
用法:python wiki_link_check.py(在 repo 根目錄執行)
youtube_summarize/
用 Gemini API 摘要 YouTube 影片。設定與用法見資料夾內 summarize.py 開頭說明。
依賴:.env(Gemini API key,不進 git,複製 .env.example 填入後使用)。