Include albumartist in filename; remove Claude API from LLM chain
Filename schema now: TT - AlbumArtist - TrackArtist - Title when albumartist differs from track artist (e.g. pianist vs. composer). Identical artist → old two-part format unchanged. metadata_resolver: removed Claude API fallback entirely from _claude_resolve. Chain is now Ollama (local, free) → OpenRouter (DeepSeek V3, cheap) only. music_enricher: updated status line and use_claude flag accordingly. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
parent
460b92aab3
commit
8bd48cf166
3 changed files with 13 additions and 24 deletions
12
executor.py
12
executor.py
|
|
@ -36,12 +36,16 @@ def _safe_name(s: str) -> str:
|
|||
return _SAFE_RE.sub("_", s).strip(". ")
|
||||
|
||||
|
||||
def _proposed_filename(proposal: TrackProposal, ext: str) -> str:
|
||||
def _proposed_filename(proposal: TrackProposal, ext: str, albumartist: str = "") -> str:
|
||||
tn = f"{proposal.track_number:02d}" if proposal.track_number else "00"
|
||||
prefix = f"{proposal.disc_number}-{tn}" if proposal.disc_number and proposal.disc_number > 1 else tn
|
||||
artist = _safe_name(proposal.artist or "Unknown")
|
||||
track_artist = _safe_name(proposal.artist or "Unknown")
|
||||
aa = _safe_name(albumartist)
|
||||
title = _safe_name(proposal.title or "Unknown")
|
||||
return f"{prefix} - {artist} - {title}{ext}"
|
||||
# Include albumartist when it differs from track artist (e.g. pianist vs. composer)
|
||||
if aa and aa.casefold() != track_artist.casefold() and aa.casefold() not in ("various artists", "unknown"):
|
||||
return f"{prefix} - {aa} - {track_artist} - {title}{ext}"
|
||||
return f"{prefix} - {track_artist} - {title}{ext}"
|
||||
|
||||
|
||||
def backup_file(path: Path, backup_dir: Path) -> bool:
|
||||
|
|
@ -194,7 +198,7 @@ def execute_album(
|
|||
cover_embedded = True
|
||||
|
||||
if do_rename:
|
||||
new_name = _proposed_filename(tp, tp.path.suffix)
|
||||
new_name = _proposed_filename(tp, tp.path.suffix, proposal.albumartist or "")
|
||||
candidate = tp.path.parent / new_name
|
||||
if candidate != tp.path:
|
||||
try:
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue