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