feat: GnuDB fallback with retries when abcde CDDB lookup returns nothing
- New module cddb.py: direct GnuDB/FreeDB HTTP lookup using CDDB protocol, with same retry+random-delay logic as MusicBrainz barcode lookup - get_discid() reads disc fingerprint via cd-discid before ripping - If abcde returns no CDDB track data, lookup_by_discid() queries GnuDB directly (up to 3 retries, 2-6 s random pause between attempts) - TrackInfo moved from ripper.py to models.py to break circular import (cddb.py and ripper.py both use TrackInfo) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
parent
65164d428c
commit
e75e5d7de0
4 changed files with 229 additions and 11 deletions
|
|
@ -4,10 +4,9 @@ from pathlib import Path
|
|||
from unittest.mock import MagicMock, patch
|
||||
|
||||
from musiksammlung.config import AudioFormat
|
||||
from musiksammlung.models import Album, Disc, Track
|
||||
from musiksammlung.models import Album, Disc, Track, TrackInfo
|
||||
from musiksammlung.ripper import (
|
||||
RipperConfig,
|
||||
TrackInfo,
|
||||
_clean_input,
|
||||
_extract_tracks,
|
||||
_parse_cddb_lines,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue