Underscore filename schema, classical detection, NameToUnix post-processing

Pop schema:      TT_-_Artist_-_Title.ext
Classical schema: TT_-_Performer_-_Komponist_-_Werk[-_Orchester_Dirigent].ext
  triggered when albumartist ≠ track artist (pianist vs composer)

All spaces in names → underscores; separator _-_ between parts.
Missing parts (orchestra, conductor) are omitted.

models.py: added conductor/orchestra optional fields to TrackProposal.
executor.py: sanitize_dir_names() tries NameToUnix first, falls back to detox.
  Called after all renames in a directory are complete.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Dieter Schlüter 2026-04-28 22:46:43 +02:00
commit 5011cef4db
3 changed files with 96 additions and 12 deletions

View file

@ -61,6 +61,8 @@ class TrackProposal:
disc_number: Optional[int]
new_filename: Optional[str] = None # only set when --rename is active
mbid: Optional[str] = None
conductor: Optional[str] = None # classical: Dirigent
orchestra: Optional[str] = None # classical: Orchester / Ensemble
@dataclass