Fix disc prefix for single-CD albums (disc=1 must not produce '1-TT' filenames)

disc_number=1 is now treated identical to disc_number=None: no 'D-' prefix in
filenames, no discnumber tag written. The D-TT prefix and discnumber tag are
only applied for genuine multi-CD albums (disc_number > 1).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Dieter Schlüter 2026-04-29 08:05:49 +02:00
commit b64a4d0922

View file

@ -72,9 +72,8 @@ def _proposed_filename(
Fehlende Teile werden weggelassen.
"""
tn = f"{proposal.track_number:02d}" if proposal.track_number else "00"
# Wenn disc_number gesetzt (auch disc=1): immer "D-TT" — konsistent über alle CDs.
# disc=None (Einzel-CD ohne Tag): nur "TT".
disc_prefix = f"{proposal.disc_number}-" if proposal.disc_number else ""
# disc_prefix nur bei echtem Multi-CD (disc > 1). disc=1 oder None → Einzel-CD → kein Präfix.
disc_prefix = f"{proposal.disc_number}-" if (proposal.disc_number and proposal.disc_number > 1) else ""
prefix = f"{disc_prefix}{tn}"
track_artist = _safe_name(proposal.artist or "Unknown")
@ -123,7 +122,7 @@ def write_tags(path: Path, proposal: TrackProposal, album_proposal: AlbumProposa
if proposal.track_number:
total = len(album_proposal.tracks)
tags_to_write["tracknumber"] = f"{proposal.track_number}/{total}"
if proposal.disc_number:
if proposal.disc_number and proposal.disc_number > 1:
tags_to_write["discnumber"] = str(proposal.disc_number)
if album_proposal.date:
# Strip everything except valid ID3 timestamp characters to prevent ID3TimeStamp errors