Deluan
7495aaaa71
Revert "Bump golang.org/x/exp, change slices.SortFunc function call"
...
This reverts commit 474f32f1
2026-01-02 20:31:30 +00:00
Deluan
eb3103f4d9
Bump golang.org/x/exp, change slices.SortFunc function call
2026-01-02 20:31:12 +00:00
Kendall Garner
4745950eb9
Do not empty old artist metadata ( #2423 )
2026-01-02 20:29:59 +00:00
Kendall Garner
e7b6b18c1c
Coalesce genre to null for smart playlist ( #2573 )
2026-01-02 20:29:58 +00:00
Philipp Wolfer
cd62da04f8
Fix listenbrainz submission and clarify MusicBrainz recording ID field ( #2279 )
...
* Fix MB recording ID parameter name for ListenBrainz submission
This follows the ListenBrainz API documentation.
Fixes #1657
* Rename MediaFile.MbzTrackID to MbzRecordingID
This better reflects the actual data. That the MusicBrainz
recording ID is stored in file metadata as musicbrainz_trackid
is a historical artifact.
* Rename database column mbz_track_id to mbz_recording_id
2026-01-02 20:27:27 +00:00
Deluan
41b5108835
Add tests to date roll-ups
2026-01-02 20:27:25 +00:00
certuna
3d1228db3b
Support for Original Date, Release Date & splitting/grouping of album editions ( #2162 )
...
* Update AlbumGridView.js
* Update AlbumDetails.js
* Update AlbumDetails.js
* Create DoubleRangeField.js
* Update and rename DoubleRangeField.js to RangeFieldDouble.js
* Update RangeFieldDouble.js
* Update AlbumGridView.js
* Update AlbumDetails.js
* Update RangeFieldDouble.js
* Update index.js
* Update RangeFieldDouble.js
* Update RangeFieldDouble.js
* Update RangeFieldDouble.js
* Update RangeFieldDouble.js
* Update RangeFieldDouble.js
* Update AlbumDetails.js
* Update RangeFieldDouble.js
* Update AlbumDetails.js
* Update RangeFieldDouble.js
* Update AlbumDetails.js
* Update RangeFieldDouble.js
* Update RangeFieldDouble.js
* Update AlbumDetails.js
* Update AlbumDetails.js
* Update RangeFieldDouble.js
* Update RangeFieldDouble.js
* Update AlbumDetails.js
* Update RangeFieldDouble.js
* Update AlbumDetails.js
* Update en.json
* Update en.json
* Update AlbumDetails.js
* Update RangeFieldDouble.js
* Update AlbumGridView.js
* Update AlbumDetails.js
* Update AlbumSongs.js
* Update ContextMenus.js
* Update SongDatagrid.js
* Update AlbumSongs.js
* Update SongDatagrid.js
* Update SongDatagrid.js
* Update SongDatagrid.js
* Update AlbumSongs.js
* Update SongList.js
* Update playlist_track_repository.go
* Update 20230113000000_release_year.go
* Update PlayButton.js
* Update mediafile_repository.go
* Update album.go
* Update playlist_track_repository.go
* Update playlist_track_repository.go
* Update SongDatagrid.js
* Update 20230113000000_release_year.go
* Update SongDatagrid.js
* Update AlbumSongs.js
* Update SongDatagrid.js
* Update SongDatagrid.js
* Update SongDatagrid.js
* Update SongDatagrid.js
* Update AlbumDetails.js
* Update AlbumSongs.js
* Update AlbumSongs.js
* Update RangeFieldDouble.js
* Update SongDatagrid.js
* Update 20230113000000_release_year.go
* Update 20230113000000_release_year.go
* Update 20230113000000_release_year.go
* Update 20230113000000_release_year.go
* Update AlbumSongs.js
* Update AlbumSongs.js
* Update mapping.go
* Update RangeFieldDouble.js
* Update AlbumGridView.js
* Update AlbumSongs.js
* Update en.json
* Update SongDatagrid.js
* Update SongDatagrid.js
* Update metadata.go
* Update mapping.go
* Update AlbumDetails.js
* Update AlbumGridView.js
* Update RangeFieldDouble.js
* Update mapping.go
* Update metadata.go
* Update mapping.go
* Update AlbumDetails.js
* Update 20230113000000_release_year.go
* Update AlbumDetails.js
* Update en.json
* Update configuration.go
* Update mapping.go
* Update configuration.go
* Update mediafile.go
* Update metadata.go
* Update RangeFieldDouble.js
* Update 20230113000000_release_year.go
* Update configuration.go
* Update mapping.go
* Update mediafile.go
* Update mapping.go
* Update RangeFieldDouble.js
* Update RangeFieldDouble.js
* Update RangeFieldDouble.js
* Update RangeFieldDouble.js
* Update RangeFieldDouble.js
* Update 20230113000000_release_year.go
* Update AlbumDetails.js
* Update RangeFieldDouble.js
* Update mapping.go
* Update metadata.go
* Update album.go
* Update mediafile.go
* Update mediafile.go
* Update album.go
* Update fields.go
* Update mediafile_repository.go
* Update playlist_track_repository.go
* Update AlbumSongs.js
* Update SongDatagrid.js
* Update PlayButton.js
* Update SongList.js
* Update ContextMenus.js
* Update SongDatagrid.js
* Update metadata.go
* Update ArtistShow.js
* Update mapping.go
* Update configuration.go
* Update mapping.go
* Update metadata.go
* Update metadata.go
* Update mapping.go
* Update metadata.go
* Update metadata.go
* Update mapping.go
* Update 20230113000000_release_year.go
* Update 20230113000000_release_year.go
* Update mapping.go
* Update metadata.go
* Update metadata.go
* Update album.go
* Update mediafile.go
* Update AlbumDetails.js
* Update AlbumSongs.js
* Update album.go
* Update mediafile.go
* Update metadata.go
* Update mediafile.go
* Update 20230113000000_release_year.go
* Update 20230113000000_release_year.go
* Update album.go
* Update mediafile.go
* Update RangeFieldDouble.js
* Update AlbumDetails.js
* Update AlbumGridView.js
* Update en.json
* Update AlbumGridView.js
* Update RangeFieldDouble.js
* Update and rename 20230113000000_release_year.go to 20230113000000_release_date.go
* Update album.go
* Update mediafile.go
* Update fields.go
* Update playlist_track_repository.go
* Update mediafile_repository.go
* Update mapping.go
* Update metadata.go
* Update mapping.go
* Update SongDatagrid.js
* Update RangeFieldDouble.js
* Update index.js
* Update ContextMenus.js
* Update PlayButton.js
* Create FormatDate.js
* Update SongList.js
* Update AlbumDetails.js
* Update AlbumSongs.js
* Update AlbumSongs.js
* Update en.json
* Update AlbumDetails.js
* Update album.go
fixed conflict I think?
* Update mediafile.go
fixed conflict
* Format with goimports
* Update SongDatagrid.js
only show Cat # in desktop view
* Update metadata_internal_test.go
* Update metadata_test.go
* Delete test.mp3
* Add files via upload
mp3 test file with Date, Original Date and Release Date
* Update metadata_test.go
* Update metadata_test.go
* Update metadata_test.go
* Update metadata_test.go
* Update taglib_test.go
* Delete test.mp3
* Add files via upload
file with replaygain & dates
* Update AlbumGridView.js
* Update AlbumDetails.js
* Update AlbumSongs.js
* Update ContextMenus.js
* Update FormatDate.js
* Update PlayButton.js
* Update RangeFieldDouble.js
* Update SongDatagrid.js
* Update AlbumSongs.js
* Update SongDatagrid.js
* Update AlbumSongs.js
* Fix formatting
* Update mapping.go
* Update AlbumSongs.js
* Update SongDatagrid.js
* Update SongDatagrid.js
prettier
* Create RangeDoubleField.js
rename of RangeFieldDouble.js
* Update AlbumGridView.js
RangeFieldDouble -> RangeDoubleField
* Update mediafile.go
AllOrNothing() -> allOrNothing()
* Update metadata_internal_test.go
getYear -> getDate
* Update AlbumDetails.js
wrote suggested changes
* Update en.json
Editions -> Releases & fixed the field name
* Update configuration.go
Rename Editions -> Releases
* Update 20230113000000_release_date.go
Editions -> Releases
* Update album.go
Editions -> Releases
* Update mediafile.go
Editions -> Releases
* Update AlbumDetails.js
Editions -> Releases
* Update AlbumSongs.js
Editions -> Releases
* Update RangeDoubleField.js
Editions -> Releases
* Update SongDatagrid.js
Editions -> Releases
* Update index.js
FormatFullDate and RangeDoubleField
* Rename FormatDate.js to FormatFullDate.js
* Delete RangeFieldDouble.js
* Update mediafile.go
AllOrNothing -> allOrNothing
* Update mapping.go
Editions -> Releases
* Update AlbumDetails.js
prettier
* Update SongDatagrid.js
showReleaseRow -> showReleaseDivider
* Update AlbumSongs.js
showReleaseRow -> showReleaseDivider for clarity
* Update and rename 20230113000000_release_date.go to 20230515184510_add_release_date.go
- rename the migration file
- fixed the import to goose/v3
- additional db fields for original date & year
* Update 20230515184510_add_release_date.go
* Update fields.go
* Update album.go
* Update mediafile.go
* Update mapping.go
* Update AlbumDetails.js
* Update en.json
* Update AlbumDetails.js
* Update AlbumDetails.js
now hopefully prettier
* Update mapping.go
---------
Co-authored-by: Deluan <deluan@navidrome.org>
2026-01-02 20:27:25 +00:00
Deluan
aba27271ed
Use the highest resolution artist image from Spotify
2026-01-02 20:26:03 +00:00
Deluan
7a5f3f419e
Add option to allow share to be downloaded
2026-01-02 20:24:47 +00:00
Deluan
8926b37b69
Add share download endpoint
2026-01-02 20:24:47 +00:00
Deluan
a18b077c83
Add lastUpdated to coverArt ids. Helps with invalidating art cache client-side.
2026-01-02 20:22:41 +00:00
Deluan
08782ef16a
Fix artwork resolution when paths contains :. Fix #2137
2026-01-02 20:22:23 +00:00
Aleksey Lobanov
a808c0f868
Base SQL metrics in MetricsWorker ( #2002 )
...
* feat: Add metrics worker
* refactor: Add todos for useful for metrics methods
* feat: Run MetricsWorker is Prometheus is Enabled
* refactor: Unused low-level variable was removed in metrics
* feat: No worker for metrics, add more
* refactor: Unnecessary todo removed
* refactor: Remove dead unused constant
* Reduce metrics public interface
Co-authored-by: Deluan <deluan@navidrome.org>
2026-01-02 20:22:01 +00:00
Deluan
2416a06b04
Add meta tags to show cover and share description in social platforms
2026-01-02 20:22:00 +00:00
Deluan
bfa35c11b8
Fix empty entry collection in Shares
2026-01-02 20:21:59 +00:00
Deluan
041f91ad53
Add getShares and createShare Subsonic endpoints
2026-01-02 20:21:59 +00:00
Deluan
b2aac87d1d
More work on Shares
2026-01-02 20:21:58 +00:00
Deluan
04abdf4509
Initial work on Shares
2026-01-02 20:21:58 +00:00
Deluan
1c93c1214a
Fix Album.MaxYear calculation
2026-01-02 20:21:57 +00:00
Kendall Garner
3242ae96b7
Get album info (when available) from Last.fm, add getAlbumInfo endpoint ( #2061 )
...
* lastfm album.getInfo, getAlbuminfo(2) endpoints
* ... for description and reduce not found log level
* address first comments
* return all images
* Update migration timestamp
* Handle a few edge cases
* Add CoverArtPriority option to retrieve albumart from external sources
* Make agents methods more descriptive
* Use Last.fm name consistently
Co-authored-by: Deluan <deluan@navidrome.org>
2026-01-02 20:21:18 +00:00
Deluan
6d4ff8c7e5
Some refactor, log message changes
2026-01-02 20:21:18 +00:00
Kendall Garner
2fb60b92ca
ReplayGain support + audio normalization (web player) ( #1988 )
...
* ReplayGain support
- extract ReplayGain tags from files, expose via native api
- use metadata to normalize audio in web player
* make pre-push happy
* remove unnecessary prints
* remove another unnecessary print
* add tooltips, see metadata
* address comments, use settings instead
* remove console.log
* use better language for gain modes
2026-01-02 20:21:18 +00:00
Kendall Garner
2cab4a4352
Add Internet Radio support ( #2063 )
...
* add internet radio support
* Add dynamic sidebar icon to Radios
* Fix typos
* Make URL suffix consistent
* Fix typo
* address feedback
* Don't need to preload when playing Internet Radios
* Reorder migration, or else it won't be applied
* Make Radio list view responsive
Also added filter by name, removed RadioActions and RadioContextMenu, and added a default radio icon, in case of favicon is not available.
* Simplify StreamField usage
* fix button, hide progress on mobile
* use js styles over index.css
Co-authored-by: Deluan <deluan@navidrome.org>
2026-01-02 20:21:17 +00:00
Deluan
6052243ff1
Optimize playlist cover generation
2026-01-02 20:21:17 +00:00
Deluan
25d61c0456
Find artist.* image in Artist folder
2026-01-02 20:21:16 +00:00
Deluan
d1cf8e9b71
Artwork reader for Artist
2026-01-02 20:21:16 +00:00
Deluan
aa5979c7ea
Add local agent, only for images
2026-01-02 20:21:16 +00:00
Deluan
21bc2a97d3
Don't refresh smart playlists when generating covers
2026-01-02 20:20:20 +00:00
Deluan
a282e53d23
PreCache Playlists CoverArt
2026-01-02 20:20:20 +00:00
Deluan
35ca63143f
Handle "naked" CoverArtIDs (IDs of album, mediafiles and playlists)
2026-01-02 20:20:20 +00:00
Deluan
6380023483
Parse correctly playlist CoverArt ids
2026-01-02 20:20:20 +00:00
Deluan
a65990f657
Fix tests and clean up code a bit
2026-01-02 20:20:20 +00:00
Deluan
2fa35ee0da
Rename DevFastAccessCoverArt to EnableMediaFileCoverArt
2026-01-02 20:20:20 +00:00
Deluan
b398921d76
Created dedicated artwork readers
2026-01-02 20:20:19 +00:00
Deluan
189ff97809
Refactor file type functions
2026-01-02 20:20:19 +00:00
Deluan
514c92997e
Implement new Artist refresh
2026-01-02 20:20:18 +00:00
Deluan
7806ac583f
Add image cache back
2026-01-02 20:20:17 +00:00
Deluan
22cfd3918f
Handle mediafile covers
2026-01-02 20:20:17 +00:00
Deluan
19621597fe
Resize if requested
2026-01-02 20:20:17 +00:00
Deluan
b7aefb3719
Load artwork from embedded
2026-01-02 20:20:17 +00:00
Deluan
e44a9574b9
Remove CoverArtID, fix tests
2026-01-02 20:20:17 +00:00
Deluan
9236e18631
Remove current artwork implementation
2026-01-02 20:20:17 +00:00
Deluan
d201cc4c79
Add all images found for each album in the database
2026-01-02 20:20:17 +00:00
Deluan
4fc0610558
Move album refresh to scanner
2026-01-02 20:20:17 +00:00
Deluan
e8d8fdd8eb
Remove old refresh code
2026-01-02 20:20:17 +00:00
Deluan
1371b601b1
Move cover art discovery (temporarily) to model
2026-01-02 20:20:17 +00:00
Deluan
9cf05a6b60
Moved logic of collapsing songs into albums to model package
...
(it should really be called domain.... maybe will rename it later)
2026-01-02 20:20:17 +00:00
Deluan
542496b2f3
Replace MinInt/MaxInt with generic versions
2026-01-02 20:20:17 +00:00
Deluan
e0bfb22007
Rename log.LevelCritical to log.LevelFatal
2026-01-02 20:20:16 +00:00
Deluan
ecf3f9b934
Add command line M3U exporter. Closes #1914
2026-01-02 20:20:16 +00:00