Deluan
3b4a67289c
chore(deps): update Go version to 1.24.2 in go.mod
2026-01-02 20:49:52 +00:00
Deluan Quintão
9ea0c6953e
refactor: external_metadata -> external.Provider ( #3903 )
...
* tests for TopSongs
Signed-off-by: Deluan <deluan@navidrome.org>
* convert to Ginkgo
Signed-off-by: Deluan <deluan@navidrome.org>
* consolidate tests
Signed-off-by: Deluan <deluan@navidrome.org>
* rename external metadata -wip
Signed-off-by: Deluan <deluan@navidrome.org>
* rename external metadata to extdata.Provider
Signed-off-by: Deluan <deluan@navidrome.org>
* refactor tests - wip
Signed-off-by: Deluan <deluan@navidrome.org>
* refactor test helpers
Signed-off-by: Deluan <deluan@navidrome.org>
* remove reflection
Signed-off-by: Deluan <deluan@navidrome.org>
* use mock.Mock
Signed-off-by: Deluan <deluan@navidrome.org>
* refactor
Signed-off-by: Deluan <deluan@navidrome.org>
* fix
Signed-off-by: Deluan <deluan@navidrome.org>
* receive Agents interface in Provider constructor
Signed-off-by: Deluan <deluan@navidrome.org>
* use mock for Agents
Signed-off-by: Deluan <deluan@navidrome.org>
* tests for SimilarSongs
Signed-off-by: Deluan <deluan@navidrome.org>
* remove duplication
Signed-off-by: Deluan <deluan@navidrome.org>
* ArtistImage tests
Signed-off-by: Deluan <deluan@navidrome.org>
* AlbumImage tests
Signed-off-by: Deluan <deluan@navidrome.org>
* fix provider error handling
Signed-off-by: Deluan <deluan@navidrome.org>
* UpdateAlbumInfo tests - wip
Signed-off-by: Deluan <deluan@navidrome.org>
* UpdateAlbumInfo tests - wip
Signed-off-by: Deluan <deluan@navidrome.org>
* refactor
Signed-off-by: Deluan <deluan@navidrome.org>
* refactor
Signed-off-by: Deluan <deluan@navidrome.org>
* refactor
Signed-off-by: Deluan <deluan@navidrome.org>
* UpdateArtistInfo tests - wip
Signed-off-by: Deluan <deluan@navidrome.org>
* clean up
Signed-off-by: Deluan <deluan@navidrome.org>
* refactor
Signed-off-by: Deluan <deluan@navidrome.org>
* fix test descriptions
Signed-off-by: Deluan <deluan@navidrome.org>
* refactor
Signed-off-by: Deluan <deluan@navidrome.org>
* refactor: rename extdata package to external
Signed-off-by: Deluan <deluan@navidrome.org>
---------
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-02 20:49:52 +00:00
Deluan
6f5b72fc3f
feat(ui): add genre and mood fields to AlbumSongs component
...
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-02 20:49:52 +00:00
Deluan Quintão
cb39d44ba0
chore(deps) upgrade Go dependencies, including golangci-lint ( #3937 )
...
* chore(deps): update Go dependencies
Signed-off-by: Deluan <deluan@navidrome.org>
* chore(deps): upgrade golangci-lint
Signed-off-by: Deluan <deluan@navidrome.org>
* build: upgrade golangci-lint-action to v7
Signed-off-by: Deluan <deluan@navidrome.org>
* go mod tidy
Signed-off-by: Deluan <deluan@navidrome.org>
---------
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-02 20:49:50 +00:00
Deluan Quintão
dcf082c955
fix(ui): update Greek, Esperanto, Polish, Russian, Turkish translations from POEditor ( #3894 )
...
Co-authored-by: navidrome-bot <navidrome-bot@navidrome.org>
2026-01-02 20:48:25 +00:00
Deluan Quintão
7b49060525
fix(server): first user created should be admin, when using reverse proxy ( #3920 )
...
Fix #3902
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-02 20:48:25 +00:00
Deluan Quintão
ae5869cfd5
feat(ui): add mood column to Album and Song list views ( #3925 )
...
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-02 20:48:24 +00:00
Deluan Quintão
a6f3382c24
fix: restore old date display/sort behaviour ( #3862 )
...
* fix(server): bring back legacy date mappings
Signed-off-by: Deluan <deluan@navidrome.org>
* reuse the mapDates logic in the legacyReleaseDate function
Signed-off-by: Deluan <deluan@navidrome.org>
* fix mappings
Signed-off-by: Deluan <deluan@navidrome.org>
* show original and release dates in album grid
Signed-off-by: Deluan <deluan@navidrome.org>
* fix tests based on new year mapping
Signed-off-by: Deluan <deluan@navidrome.org>
* fix(subsonic): prefer returning original_year over (recording) year
when sorting albums
Signed-off-by: Deluan <deluan@navidrome.org>
* fix case when we don't have originalYear
Signed-off-by: Deluan <deluan@navidrome.org>
* show all dates in album's info, and remove the recording date from the album page
Signed-off-by: Deluan <deluan@navidrome.org>
* better?
Signed-off-by: Deluan <deluan@navidrome.org>
* add snapshot tests for Album Details
Signed-off-by: Deluan <deluan@navidrome.org>
* fix(subsonic): sort order for getAlbumList?type=byYear
Signed-off-by: Deluan <deluan@navidrome.org>
---------
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-02 20:48:24 +00:00
Deluan
e5409db3a5
chore: replace album placeholder
...
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-02 20:48:24 +00:00
Deluan
bff889b639
chore(subsonic): update snapshot tests to use version 1.16.1
2026-01-02 20:48:24 +00:00
Deluan Quintão
a269eea7f9
chore(server): add more info to scrobble errors logs ( #3889 )
...
* chore(server): add more info to scrobble errors
Signed-off-by: Deluan <deluan@navidrome.org>
* chore(server): add more info to scrobble errors
Signed-off-by: Deluan <deluan@navidrome.org>
* chore(server): add more info to scrobble errors
Signed-off-by: Deluan <deluan@navidrome.org>
---------
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-02 20:48:24 +00:00
Deluan
316ee67fe4
feat(ui): hide absolute paths from regular users
...
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-02 20:48:24 +00:00
Deluan
66d974f82d
feat(ui): add Norwegian translation
...
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-02 20:48:24 +00:00
Michachatz
64dcdae017
feat(ui): add Greek translation ( #3892 )
...
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-02 20:48:24 +00:00
Deluan Quintão
7439a1166d
fix(ui): update French, Polish, Turkish translations from POEditor ( #3834 )
...
Co-authored-by: navidrome-bot <navidrome-bot@navidrome.org>
2026-01-02 20:48:24 +00:00
matteo00gm
03ed70338d
fix(ui): update Italian translations ( #3885 )
2026-01-02 20:48:24 +00:00
Deluan
396328cb87
fix(ui): sort playlist by album_artist, bpm and channels
...
fix #3878
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-02 20:48:24 +00:00
Deluan Quintão
f3817c6c71
fix(bfr): force upgrade to read all folders. ( #3871 )
...
* chore(scanner): add trace logs
Signed-off-by: Deluan <deluan@navidrome.org>
* fix(bfr): force upgrade to read all folders. It was skipping folders for certain timezones
Signed-off-by: Deluan <deluan@navidrome.org>
---------
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-02 20:48:24 +00:00
Deluan
454bc26e47
fix(ui): sort playlist by year
...
fix #3878
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-02 20:48:24 +00:00
Deluan
739ccb9d5d
fix(scanner): elapsed time for folder processing is wrong in the logs
...
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-02 20:48:24 +00:00
Deluan
c34a6bae55
chore: remove more outdated TODOs
...
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-02 20:48:23 +00:00
Deluan
a1baec0fc1
chore: remove some BFR-related TODOs that are not valid anymore
...
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-02 20:48:23 +00:00
Deluan Quintão
ce5e9ae218
feat(server): custom ArtistJoiner config ( #3873 )
...
* feat(server): custom ArtistJoiner config
Signed-off-by: Deluan <deluan@navidrome.org>
* refactor(ui): organize ArtistLinkField, add tests
Signed-off-by: Deluan <deluan@navidrome.org>
* feat(ui): use display artist
* feat(ui): use display artist
Signed-off-by: Deluan <deluan@navidrome.org>
---------
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-02 20:48:23 +00:00
Deluan
d9438b409c
feat(docker): automatically loads a navidrome.toml file from /data, if available
...
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-02 20:48:23 +00:00
Deluan
108f671519
fix(server): don't break if the ND_CONFIGFILE does not exist
...
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-02 20:48:23 +00:00
Deluan
55334e0b2b
feat(ui): show bitDepth in song info dialog
...
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-02 20:48:23 +00:00
Deluan
f373752b91
fix(scanner): support ID3v2 embedded images in WAV files
...
Fix #3867
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-02 20:48:23 +00:00
Deluan
f67a0834ac
fix(scanner): better log message when AutoImportPlaylists is disabled
...
Fix #3861
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-02 20:48:23 +00:00
Deluan Quintão
afd9356154
fix(scanner): allow disabling splitting with the Tags config option ( #3869 )
...
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-02 20:48:23 +00:00
Nicolas Derive
b9e741deef
fix(ui): update Français, reorder translation according to en.json template ( #3839 )
...
Update french translation and reorder the file the same way as the en.json template, making comparison easier.
2026-01-02 20:48:23 +00:00
Xabi
f3dac57f92
fix(ui): update Basque translation ( #3864 )
...
* Update Basque localisation
added missing strings
* Update eu.json
2026-01-02 20:48:23 +00:00
Deluan
6b2575d02b
fix(subsonic): ArtistID3 should contain list of AlbumID3
...
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-02 20:48:23 +00:00
Deluan Quintão
9a9605d341
fix(server): better embedded artwork extraction with ffmpeg ( #3860 )
...
- `-map 0:v` selects all video streams from the input
- `-map -0:V` excludes all "main" video streams (capital V)
This combination effectively selects only the attached pictures
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-02 20:48:23 +00:00
Deluan
2c64f5ef86
fix(scanner): ignore NaN ReplayGain values
...
Fix: https://github.com/navidrome/navidrome/issues/3858
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-02 20:48:22 +00:00
Deluan
e4943f786d
fix(scanner): pass datafolder and cachefolder to scanner subprocess
...
Fix #3831
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-02 20:48:22 +00:00
Deluan
a9331d5ddf
fix(dockerfile): remove the healthcheck, it gives more headaches than benefits.
...
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-02 20:48:22 +00:00
Deluan
e55c4ce2e5
chore(deps): upgrade viper to 1.20.0, add tests for the supported config formats
...
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-02 20:48:20 +00:00
Rob Emery
d4e8c17b9c
fix(msi): don't override custom ini config ( #3836 )
...
Previously addLine would add-or-update, resulting in the custom settings being overriden on upgrade. createLine will only add to the ini if the key doesn't already exist.
2026-01-02 20:47:44 +00:00
Deluan
d14e64b560
chore(server): show square flag in resize artwork logs
...
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-02 20:47:44 +00:00
Deluan Quintão
9b8b4fa446
chore(deps): upgrade to Go 1.24.1 ( #3851 )
...
* chore(deps): upgrade to Go 1.24.1
Signed-off-by: Deluan <deluan@navidrome.org>
* chore(deps): add reflex as go.mod tool
Signed-off-by: Deluan <deluan@navidrome.org>
* chore(deps): add wire as go.mod tool
Signed-off-by: Deluan <deluan@navidrome.org>
* chore(deps): add goimports as go.mod tool
Signed-off-by: Deluan <deluan@navidrome.org>
* chore(deps): add ginkgo as go.mod tool
Signed-off-by: Deluan <deluan@navidrome.org>
---------
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-02 20:47:44 +00:00
Deluan Quintão
be0dd1b7ab
fix(scanner): fix displayArtist logic ( #3835 )
...
* fix displayArtist logic
Signed-off-by: Deluan <deluan@navidrome.org>
* remove unneeded value
Signed-off-by: Deluan <deluan@navidrome.org>
* refactor
Signed-off-by: Deluan <deluan@navidrome.org>
* Use first albumartist if it cannot figure out the display name
Signed-off-by: Deluan <deluan@navidrome.org>
---------
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-02 20:47:44 +00:00
Kendall Garner
88ebb6ff19
fix(ui): minor icon inconsistencies and "no missing files" translation ( #3837 )
...
* chore(ui): Fix minor inconsistencies
1. The icons in the user menu are a mix of MUI and react-icons. Move them all to react-icons, and use a standard size (24px)
2. On missing files page, provide a custom Empty component that just removes 'yet'
* use RA's builtin support for custom empty message
Signed-off-by: Deluan <deluan@navidrome.org>
---------
Signed-off-by: Deluan <deluan@navidrome.org>
Co-authored-by: Deluan <deluan@navidrome.org>
2026-01-02 20:47:44 +00:00
Deluan Quintão
994d82457b
feat(server): add Role filters to albums ( #3829 )
...
* navidrome artist filtering
* address discord feedback
* perPage min 36
* various artist artist_id -> albumartist_id
* artist_id, role_id separate
* remove all ui changes I guess
* Add tests, check for possible SQL injection
Signed-off-by: Deluan <deluan@navidrome.org>
---------
Signed-off-by: Deluan <deluan@navidrome.org>
Co-authored-by: Kendall Garner <17521368+kgarner7@users.noreply.github.com>
2026-01-02 20:47:44 +00:00
Kendall Garner
8d97ae8ca3
fix(subsonic): fix albumCount in artists ( #3827 )
...
* only do subsonic instead
* make sure to actually populate response first
* navidrome artist filtering
* address discord feedback
* perPage min 36
* various artist artist_id -> albumartist_id
* artist_id, role_id separate
* remove all ui changes I guess
* Revert role filters
Signed-off-by: Deluan <deluan@navidrome.org>
---------
Signed-off-by: Deluan <deluan@navidrome.org>
Co-authored-by: Deluan <deluan@navidrome.org>
2026-01-02 20:47:44 +00:00
Deluan
85a4bec2a5
docs(scanner): clarifies the purpose of the mappings.yaml file for regular users
...
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-02 20:47:44 +00:00
Deluan
350a3900c5
chore(scanner): add logs to .ndignore processing
...
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-02 20:47:44 +00:00
Kendall Garner
8178792189
fix(scanner): restore setsubtitle as discsubtitle for non-WMA ( #3821 )
...
With old metadata, Disc Subtitle was one of `tsst`, `discsubtitle`, or `setsubtitle`.
With the updated, `setsubtitle` is only available for flac.
Update `mappings.yaml` to maintain prior behavior.
2026-01-02 20:47:43 +00:00
Deluan
2c5282d364
feat(scanner): allow disabling tags with Tags.<tag>.Ignore=true
...
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-02 20:47:43 +00:00
Deluan
bb58769aa6
fix(scanner): add back the Scanner.GenreSeparators as a deprecated option
...
This allows easy upgrade of containers in PikaPods
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-02 20:47:43 +00:00
Deluan Quintão
6543e4864a
fix(server): skip non-UTF encoding during the database migration. ( #3803 )
...
Fix #3787
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-02 20:47:43 +00:00