Skip to content

feat: organize files and duplicate analysis#2224

Open
tankxbvr wants to merge 1 commit into
xbapps:masterfrom
tankxbvr:feature/organize
Open

feat: organize files and duplicate analysis#2224
tankxbvr wants to merge 1 commit into
xbapps:masterfrom
tankxbvr:feature/organize

Conversation

@tankxbvr

Copy link
Copy Markdown

Adds an Organize files feature plus a Duplicate files analyzer.

Organize

Reorganises library videos into a canonical layout and keeps the files table in sync:

{TopFolder}/{Studio}/{Studio}.{YY.MM.DD}.{Cast}.{Title}.XXX.{FOV}.{Height}p/
  • Plans are computed as a preview and only applied from the UI. Scheduled runs are dry-run only (they log the plan; nothing moves automatically).
  • Moves stay within a storage folder (auto-detected from local volumes) — files are never moved across folders.
  • Byte-identical copies are de-duplicated (md5-confirmed), hard links collapsed, sidecars moved alongside, and emptied directories removed.
  • Configurable top folder, a cast-gender preference for folder names, and optional per-actor CamelCase symlink folders.

Duplicate analysis

Finds scenes with multiple files, flags duration mismatches (possible mis-assignment), compares PSNR between copies, and suggests which to keep. Files can be ignored, deleted, or disassociated from the scene, all from the UI.

UI

New Options → Organize files and Options → Duplicate files sections, plus a dry-run schedule under Task Schedules.

Self-contained: Go packages build in isolation and the UI (yarn build) passes.

@tankxbvr

tankxbvr commented Jul 15, 2026

Copy link
Copy Markdown
Author
Screenshot 2026-07-16 010320

@tankxbvr tankxbvr changed the title Organize files + duplicate analysis feat: organize files and duplicate analysis Jul 16, 2026
Reorganise library videos into a canonical
{TopFolder}/{Studio}/{Studio}.{date}.{Cast}.{Title}.XXX.{FOV}.{Height}p/
layout, keeping the files table in sync. Plans are computed as a preview
and applied from the UI; scheduled runs are dry-run only.

- Moves stay within a storage folder (auto-detected from local volumes);
  files are never moved across folders.
- Byte-identical copies de-duplicated (md5-confirmed), hard links
  collapsed, sidecars moved alongside, emptied dirs removed.
- Configurable top folder, cast-gender preference for folder names, and
  optional per-actor CamelCase symlink folders.
- Duplicate analysis: finds scenes with multiple files, flags duration
  mismatches, compares PSNR, and suggests which copy to keep; files can
  be ignored, deleted, or disassociated from the UI.
- Options -> Organize files / Duplicate files, plus a dry-run schedule.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant