Deluan
a6f1f7b7e3
fix(server): albumtype in Smart Playlists
...
Signed-off-by: Deluan <deluan@navidrome.org>
2025-04-11 23:53:16 -04:00
Deluan Quintão
49b8cfc261
fix(artwork): always select the coverArt of the first disc in multi-disc albums ( #3950 )
...
* feat(artwork): sort image files for consistent cover art selection
Signed-off-by: Deluan <deluan@navidrome.org>
* feat(artwork): improve album cover art selection by considering disc numbers
Signed-off-by: Deluan <deluan@navidrome.org>
---------
Signed-off-by: Deluan <deluan@navidrome.org>
2025-04-11 23:39:57 -04:00
Deluan
bcea8b832a
chore(deps): update Go version to 1.24.2 in go.mod
2025-04-11 23:18:00 -04:00
Deluan Quintão
58367afaea
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>
2025-04-08 21:11:09 -04:00
Deluan
6b59f5f73a
feat(ui): add genre and mood fields to AlbumSongs component
...
Signed-off-by: Deluan <deluan@navidrome.org>
2025-04-08 18:13:37 -04:00
Deluan Quintão
5f0c1e7387
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>
2025-04-07 19:42:00 -03:00
Deluan Quintão
a057a680f1
fix(ui): update Greek, Esperanto, Polish, Russian, Turkish translations from POEditor ( #3894 )
...
Co-authored-by: navidrome-bot <navidrome-bot@navidrome.org>
v0.55.2
2025-04-05 08:54:29 -03:00
Deluan Quintão
f9081bbe6b
fix(server): first user created should be admin, when using reverse proxy ( #3920 )
...
Fix #3902
Signed-off-by: Deluan <deluan@navidrome.org>
2025-04-05 08:24:14 -03:00
Deluan Quintão
73eb0e254b
feat(ui): add mood column to Album and Song list views ( #3925 )
...
Signed-off-by: Deluan <deluan@navidrome.org>
2025-04-05 08:23:52 -03:00
Deluan Quintão
2b84c574ba
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>
2025-03-30 17:06:58 -04:00
Deluan
88f87e6c4f
chore: replace album placeholder
...
Signed-off-by: Deluan <deluan@navidrome.org>
2025-03-30 13:41:32 -04:00
Deluan
cf100c4eb4
chore(subsonic): update snapshot tests to use version 1.16.1
2025-03-27 22:50:22 -04:00
Deluan Quintão
5ab345c83e
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>
2025-03-27 18:57:06 -04:00
Deluan
46a2ec0ba1
feat(ui): hide absolute paths from regular users
...
Signed-off-by: Deluan <deluan@navidrome.org>
2025-03-25 20:05:24 -04:00
Deluan
3394580413
feat(ui): add Norwegian translation
...
Signed-off-by: Deluan <deluan@navidrome.org>
2025-03-25 17:43:25 -04:00
Michachatz
112ea281d9
feat(ui): add Greek translation ( #3892 )
...
Signed-off-by: Deluan <deluan@navidrome.org>
2025-03-25 17:33:58 -04:00
Deluan Quintão
c837838d58
fix(ui): update French, Polish, Turkish translations from POEditor ( #3834 )
...
Co-authored-by: navidrome-bot <navidrome-bot@navidrome.org>
2025-03-24 17:52:03 -04:00
matteo00gm
9e9465567d
fix(ui): update Italian translations ( #3885 )
2025-03-24 17:49:23 -04:00
Deluan
651ce163c7
fix(ui): sort playlist by album_artist
, bpm
and channels
...
fix #3878
Signed-off-by: Deluan <deluan@navidrome.org>
2025-03-24 16:41:54 -04:00
Deluan Quintão
55ce28b2c6
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>
2025-03-24 15:22:59 -04:00
Deluan
d331ee904b
fix(ui): sort playlist by year
...
fix #3878
Signed-off-by: Deluan <deluan@navidrome.org>
2025-03-24 15:08:17 -04:00
Deluan
3a0ce6aafa
fix(scanner): elapsed time for folder processing is wrong in the logs
...
Signed-off-by: Deluan <deluan@navidrome.org>
2025-03-23 12:36:38 -04:00
Deluan
1806552ef6
chore: remove more outdated TODOs
...
Signed-off-by: Deluan <deluan@navidrome.org>
2025-03-23 11:53:43 -04:00
Deluan
223e88d481
chore: remove some BFR-related TODOs that are not valid anymore
...
Signed-off-by: Deluan <deluan@navidrome.org>
2025-03-23 11:37:20 -04:00
Deluan Quintão
57e0f6d3ea
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>
2025-03-23 10:53:21 -04:00
Deluan
1c691ac0e6
feat(docker): automatically loads a navidrome.toml file from /data, if available
...
Signed-off-by: Deluan <deluan@navidrome.org>
2025-03-22 17:33:56 -04:00
Deluan
264d73d73e
fix(server): don't break if the ND_CONFIGFILE does not exist
...
Signed-off-by: Deluan <deluan@navidrome.org>
2025-03-22 17:08:03 -04:00
Deluan
296259d781
feat(ui): show bitDepth in song info dialog
...
Signed-off-by: Deluan <deluan@navidrome.org>
2025-03-22 15:48:29 -04:00
Deluan
3f9d173495
fix(scanner): support ID3v2 embedded images in WAV files
...
Fix #3867
Signed-off-by: Deluan <deluan@navidrome.org>
2025-03-22 15:48:07 -04:00
Deluan
b386981b7f
fix(scanner): better log message when AutoImportPlaylists is disabled
...
Fix #3861
Signed-off-by: Deluan <deluan@navidrome.org>
2025-03-22 15:08:26 -04:00
Deluan Quintão
be7cb59dc5
fix(scanner): allow disabling splitting with the Tags
config option ( #3869 )
...
Signed-off-by: Deluan <deluan@navidrome.org>
2025-03-22 12:34:35 -04:00
Nicolas Derive
63dc0e2062
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.
2025-03-22 12:31:32 -04:00
Xabi
1e1dce92b6
fix(ui): update Basque translation ( #3864 )
...
* Update Basque localisation
added missing strings
* Update eu.json
2025-03-22 12:29:43 -04:00
Deluan
d78c6f6a04
fix(subsonic): ArtistID3 should contain list of AlbumID3
...
Signed-off-by: Deluan <deluan@navidrome.org>
2025-03-20 22:10:46 -04:00
Deluan Quintão
59ece40393
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>
2025-03-20 19:26:40 -04:00
Deluan
491210ac12
fix(scanner): ignore NaN ReplayGain values
...
Fix: https://github.com/navidrome/navidrome/issues/3858
Signed-off-by: Deluan <deluan@navidrome.org>
2025-03-20 12:42:09 -04:00
Deluan
cd552a55ef
fix(scanner): pass datafolder and cachefolder to scanner subprocess
...
Fix #3831
Signed-off-by: Deluan <deluan@navidrome.org>
2025-03-19 22:15:20 -04:00
Deluan
ee2c2b19e9
fix(dockerfile): remove the healthcheck, it gives more headaches than benefits.
...
Signed-off-by: Deluan <deluan@navidrome.org>
2025-03-19 20:18:56 -04:00
Deluan
0147bb5f12
chore(deps): upgrade viper to 1.20.0, add tests for the supported config formats
...
Signed-off-by: Deluan <deluan@navidrome.org>
2025-03-18 19:16:47 -04:00
Rob Emery
1ed8930107
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.
2025-03-18 18:23:04 -04:00
Deluan
e457f21306
chore(server): show square flag in resize artwork logs
...
Signed-off-by: Deluan <deluan@navidrome.org>
2025-03-18 12:43:52 -04:00
Deluan Quintão
b04647309f
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>
2025-03-17 21:08:10 -04:00
Deluan Quintão
2adb098f32
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>
2025-03-17 19:21:33 -04:00
Kendall Garner
212887214c
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>
2025-03-16 19:39:19 -04:00
Deluan Quintão
beb768cd9c
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>
v0.55.1
2025-03-14 21:43:52 -04:00
Kendall Garner
ed1109ddb2
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>
2025-03-14 21:21:03 -04:00
Deluan
98808e4b6d
docs(scanner): clarifies the purpose of the mappings.yaml file for regular users
...
Signed-off-by: Deluan <deluan@navidrome.org>
2025-03-14 19:32:26 -04:00
Deluan
422ba2284e
chore(scanner): add logs to .ndignore processing
...
Signed-off-by: Deluan <deluan@navidrome.org>
2025-03-14 17:44:11 -04:00
Kendall Garner
938c3d44cc
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.
2025-03-14 07:01:07 -04:00
Deluan
2838ac36df
feat(scanner): allow disabling tags with Tags.<tag>.Ignore=true
...
Signed-off-by: Deluan <deluan@navidrome.org>
2025-03-13 19:55:30 -04:00