Commit Graph
144 Commits
Author SHA1 Message Date
arnef ba6bf2f34c feat: allow overriding the output directory via GODEEZ_OUTPUT_DIR
The output directory used to be fixed at ~/Music/GoDeez. config.Load
now honours GODEEZ_OUTPUT_DIR when set, with a leading ~ expanded by
hand since the shell only does that for unquoted arguments, not for
values read out of the environment. Falls back to the previous default
when unset.
2026-08-14 21:00:15 +02:00
arnef b1c15341fd feat: write an m3u playlist to preserve playlist track order
Playlist file names carry no ordering information, so the sequence a
user curated on Deezer was lost once the tracks landed on disk (unlike
albums, which get a zero padded track number prefix). downloadTrack
now reports the output path on success as well as on skip, and
downloadAllTracks collects the per-track paths for playlist downloads
and writes them, in order, to an extended m3u file next to the audio.
Failed tracks are left out since there is nothing on disk to point at;
a write failure is reported as a warning rather than failing the run.
2026-08-14 21:00:08 +02:00
arnef 765595133f docs: add copilot instructions for future sessions
Document build/test/lint commands, the cmd -> download -> deezer
pipeline architecture, and codebase conventions so future Copilot
sessions can work effectively in this repository.
2026-08-14 20:58:51 +02:00
Mathis Maquenne b1ad9b4904 docs: document packages, exported API and non-obvious logic 2026-08-06 13:04:10 +02:00
Mathis Maquenne 5dfd832d0d docs: rewrite headline and clarify quality wording 2026-08-06 11:11:04 +02:00
Mathis Maquenne 3b51426251 fix: load handwritten release notes into the release body 2026-08-05 23:35:37 +02:00
Mathis Maquenne 770efdb752 docs: update changelog for v1.5.0 v1.5.0 2026-08-05 23:18:57 +02:00
Mathis Maquenne d3a536f744 docs: document update force and artist limit flags 2026-08-05 23:10:13 +02:00
Mathis Maquenne dddfad4984 Merge branch 'feat/wav-output' into dev 2026-08-05 23:02:29 +02:00
Mathis Maquenne bcb3558a73 docs: document wav download quality 2026-08-05 22:59:26 +02:00
Mathis Maquenne 84dd371fdd feat: tag wav files with id3 and info chunks 2026-08-05 22:51:43 +02:00
Mathis Maquenne b804c5e288 feat: add wav download quality 2026-08-05 22:51:43 +02:00
Mathis Maquenne b3777bf8eb feat: add lossless flac to wav converter 2026-08-05 22:51:43 +02:00
Mathis Maquenne eea049aae9 refactor: unexport internal identifiers and fix naming nits 2026-08-05 21:55:59 +02:00
Mathis Maquenne c1775e5c04 style: prefer stdlib idioms for errors and http methods 2026-08-05 21:43:59 +02:00
Mathis Maquenne a695fb4de3 fix: resolve bugs found in pre-release review 2026-08-05 21:33:08 +02:00
Mathis Maquenne 5bb1448650 refactor: validate limit only for artist downloads 2026-08-05 12:42:51 +02:00
Mathis Maquenne e90a56ec53 fix: use filepath helpers for filesystem paths 2026-08-05 12:41:55 +02:00
Mathis Maquenne b616a58d7b ops: run go test in ci 2026-08-05 11:51:20 +02:00
Mathis Maquenne 66fda7424a test: add update version and checksum tests 2026-08-05 11:50:58 +02:00
Mathis Maquenne 3fe050ea15 test: add download, store, and scraper tests 2026-08-05 11:50:30 +02:00
Mathis Maquenne 563efe78bd test: add deezer crypto and filename tests 2026-08-05 11:49:21 +02:00
Mathis Maquenne f8b301e24c style: rename accessors to idiomatic names 2026-08-05 11:47:53 +02:00
Mathis Maquenne 88319ebb3c refactor: rename updater package to update 2026-08-05 11:46:34 +02:00
Mathis Maquenne 5c95554855 refactor: consolidate download domain into download package 2026-08-05 11:46:10 +02:00
Mathis Maquenne dbb808f371 refactor: replace fileutil with fsutil and local hashing 2026-08-05 11:42:35 +02:00
Mathis Maquenne 12dbbb5e10 refactor: move resource info rendering into downloader 2026-08-05 11:41:24 +02:00
Mathis Maquenne dbd7837b17 refactor: fold auth and crypto into deezer domain 2026-08-05 11:40:14 +02:00
Mathis Maquenne 16c71c8688 refactor: decouple tag writers from deezer models 2026-08-05 11:37:59 +02:00
Mathis Maquenne 3c9da5f24a refactor: build cobra commands with constructors 2026-08-05 11:35:52 +02:00
Mathis Maquenne 0ab25addd5 refactor: open track store explicitly and remove global state 2026-08-05 11:34:27 +02:00
Mathis Maquenne 714d567603 refactor: introduce typed resource kind 2026-08-05 11:33:13 +02:00
Mathis Maquenne 3ec258b876 refactor: remove dead logger package and unused fields 2026-08-05 11:31:17 +02:00
Mathis Maquenne 97153c1688 docs: document credential login and update CLI output 2026-08-05 10:47:49 +02:00
Mathis Maquenne 1fbbd60106 refactor: use track terminology instead of song 2026-07-30 12:53:03 +02:00
Mathis Maquenne 90b7bb25f0 Merge branch 'feat/auto-update' into dev 2026-07-30 11:32:12 +02:00
Mathis Maquenne 88c7b57648 ops: run ci on every branch push 2026-07-30 11:30:08 +02:00
Mathis Maquenne 4286ccd626 docs: document self-update and new release asset names 2026-07-30 11:30:08 +02:00
Mathis Maquenne 887fc682fe ops: add ci workflow 2026-07-30 11:30:08 +02:00
Mathis Maquenne 3acd1aeb4f ops: add goreleaser configuration and release workflow 2026-07-30 11:30:08 +02:00
Mathis Maquenne 544fd09199 feat: notify when a new version is available 2026-07-30 11:30:08 +02:00
Mathis Maquenne b734ad802a feat: add update command 2026-07-30 11:30:08 +02:00
Mathis Maquenne eb93d01c19 feat: add updater package for in-place self-update 2026-07-30 11:30:08 +02:00
Mathis Maquenne 0e0cbdad5e feat: add version command 2026-07-30 11:30:08 +02:00
Mathis Maquenne 785bb58cb5 feat: add buildinfo package for version information 2026-07-30 11:30:08 +02:00
Mathis Maquenne cab49d2818 build: add golang.org/x/mod dependency 2026-07-30 11:30:08 +02:00
Mathis Maquenne c544c9406c fix: exit with a non-zero status when a command fails 2026-07-30 11:29:06 +02:00
Mathis Maquenne 0287cfba9c Merge branch 'feat/credential-login' into dev 2026-07-30 11:24:49 +02:00
Mathis Maquenne c2f60be18e refactor: use ARL initialism casing 2026-07-30 11:13:13 +02:00
Mathis Maquenne 44a57d5f3a feat: add login and logout commands 2026-07-29 11:33:50 +02:00