mirror of
https://git.sr.ht/~joren/streamrip-go
synced 2026-10-16 13:57:25 +02:00
refactor: delete dead code, dedupe helpers, add tests for untested packages
Dead code Removed, each verified to have no non-test caller: promptSearchSelection (77 lines, superseded by promptSearchSelectionMenu), AddPlaylistByTrackIDs, download.NewWithVerifySSL, qobuz.Client.GetTrackMetadata, tidal.Client.trackSupportsAtmos (test-only, and the comment above GetDownloadable already documented its removal from the live path) and its now-orphaned test, yandex.canonicalTrackRequestID (a no-op returning its trimmed input; the call site uses strings.TrimSpace directly) and the unused defaultEstimatedKbps constant. Config keys that did nothing qobuz.download_booklets and misc.check_for_updates were declared, defaulted and documented in config.toml.example but read by no code. The whole [youtube] block went too: there is no YouTube provider. go-toml ignores unknown keys, verified, so existing user configs still load. Duplicated helpers tidal.stringify and yandex.firstNonEmpty were byte-identical copies of jsonutil.StringFromAny and jsonutil.FirstNonEmpty. displayArtistNames existed three times, byte-identical, in internal/app, provider/yandex and provider/beatport; it now lives in jsonutil. The CLI's normalizeCodec delegates to config.NormalizeCodec so the flag and the config file are checked by the same rules. Tests for packages that had none internal/jsonutil (0% -> 100%) and internal/netutil (0% -> 78%), the latter covering redactURL, which is a security control, and the zero-timeout contract that internal/download and the qobuz body copy depend on. internal/config rose to 82% with coverage of the new Validate(), the 0600 permissions, CloneConfigData not sharing slices, and a concurrent UpdateTokens test that exercises the mutex under -race. Test suite is ~85x faster Provider tests built clients with the default 60 requests/minute, so the rate limiter slept 1s per HTTP call: deezer took 31s, tidal 11s, qobuz 8s. Each provider test package now builds its config through a testConfigData helper that disables throttling. Whole suite: ~60s -> 0.7s, and 2.8s under -race. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
19 files changed
+701
-392
No files matched your search
@@ -21,9 +21,6 @@ verify_ssl = true
|
||||
# Quality ladder (global scale is 0-4, Qobuz supports 1-4):
|
||||
# 1 = MP3 320, 2 = FLAC 16/44.1, 3 = FLAC 24-bit <=96kHz, 4 = FLAC 24-bit <=192kHz
|
||||
quality = 3
|
||||
# Download booklet PDFs when available
|
||||
download_booklets = true
|
||||
|
||||
# Authenticate using Qobuz auth token instead of email/password hash
|
||||
use_auth_token = false
|
||||
# If use_auth_token=true, set your user id. Otherwise set your email.
|
||||
@@ -101,14 +98,6 @@ quality = 0
|
||||
client_id = ""
|
||||
app_version = ""
|
||||
|
||||
[youtube]
|
||||
# Only 0 is currently supported
|
||||
quality = 0
|
||||
# Download video streams together with audio when supported
|
||||
download_videos = false
|
||||
# Folder used for video outputs
|
||||
video_downloads_folder = "/path/to/StreamripDownloads/YouTubeVideos"
|
||||
|
||||
[database]
|
||||
# Track IDs already downloaded are stored here and skipped next time
|
||||
downloads_enabled = true
|
||||
@@ -189,5 +178,3 @@ max_search_results = 100
|
||||
[misc]
|
||||
# Metadata used for config compatibility checks
|
||||
version = "2.2.0"
|
||||
# Notify when a new version is available
|
||||
check_for_updates = true
|
||||
Reference in new issue
Block a user