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
3b8a73a31e
Use table specs in ReplayGain tests.
...
Also use test.mp3 file from Release Date PR, trying to fix a conflict.
2026-01-02 20:27:25 +00:00
Kendall Garner
de02fa6137
Manually add replaygain tags for m4a ( #2346 )
...
* manually add replaygain tags for m4a
* Add replaygain tests for m4a, mp4, ogg
* add new valye for bitrate
2026-01-02 20:27:25 +00:00
Deluan
7b168fc0ab
Fix data race in scanner
2026-01-02 20:25:44 +00:00
Deluan
55c1d95376
Enable SQL migrations
2026-01-02 20:25:44 +00:00
Deluan
2a7c4309a6
Fix race condition
2026-01-02 20:25:43 +00:00
Joakim Repomaa
b663ca71d8
Implement artist art priority ( #2266 )
...
* implement artist art priority
* add tests
2026-01-02 20:25:43 +00:00
Deluan
12346eb0df
Ignore Recycle Bins in Windows. Fix #1074
2026-01-02 20:24:14 +00:00
Deluan
9b5995f81a
Enable ReplayGain by default and always import RG tags
2026-01-02 20:23:35 +00:00
Deluan
6013e30f7b
Make ffmpeg path configurable, also finds it automatically in current folder. Fixes #1932
2026-01-02 20:22:41 +00:00
Deluan
9b1ff0d815
Don't retrieve Various Artists and Unknown Artist info from Last.fm
2026-01-02 20:22:24 +00:00
Deluan
08782ef16a
Fix artwork resolution when paths contains :. Fix #2137
2026-01-02 20:22:23 +00:00
Deluan
7085e97a1f
Handle nil pointer dereference. Fix #2133
2026-01-02 20:22:02 +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
Corrado Primier
9a697ecaba
Fix Illumos build - #2067 ( #2069 )
...
Build currently fails on Illumos with error `Undefined symbol sendfile`. Fix it by linking `sendfile` explicitly.
2026-01-02 20:21:57 +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
Deluan
6c2562210b
Remove "Biography not available" when agents are not available
2026-01-02 20:21:16 +00:00
Deluan
f0b8274f83
PreCache artist images
2026-01-02 20:21:16 +00:00
Deluan
12a9a64c1e
Don't show error when it is nil
2026-01-02 20:21:16 +00:00
Deluan
4bd0f4400e
Use custom sanitize package, fix #2070
2026-01-02 20:20:21 +00:00
Deluan
314a32f0b4
Add test for mapTrackTitle
2026-01-02 20:20:20 +00:00
Deluan
a282e53d23
PreCache Playlists CoverArt
2026-01-02 20:20:20 +00:00
Deluan
881370001a
Move artwork handling to its own package
2026-01-02 20:20:19 +00:00
Deluan
79be042b7f
Add new Artwork Cache Warmer
2026-01-02 20:20:19 +00:00
Deluan
189ff97809
Refactor file type functions
2026-01-02 20:20:19 +00:00
Deluan
0bb3dc0114
Make sure album is updated if external cover changes
2026-01-02 20:20:19 +00:00
Deluan
514c92997e
Implement new Artist refresh
2026-01-02 20:20:18 +00:00
Deluan
05b95673db
Fix cover detection on M4A containers
2026-01-02 20:20:18 +00:00
Deluan
19621597fe
Resize if requested
2026-01-02 20:20:17 +00:00
Deluan
886ee8e9f4
Remove current Image Cache 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
f82231abaf
Move alternative tag names mapping to metadata
2026-01-02 20:20:16 +00:00
Deluan
b9b4cd6b6c
Invert dependency of metadata and extractors
2026-01-02 20:20:16 +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
Deluan
5fef41681b
Some cleanup, fixes typos and grammar errors
2026-01-02 20:19:52 +00:00
Reo
39de2e6a88
Fix Misleading Error Message on unreadable Media due to Permission ( #1873 )
...
* fix(taglib): Fix misleading error message on unreadable media - #1576
Signed-off-by: reo <reo_999@proton.me>
* fix(taglib): Add unit test and exclude scan for only unreadable file - #1576
Signed-off-by: reo <reo_999@proton.me>
* fix(taglib): Add unit test and exclude scan for only unreadable file - #1576
Signed-off-by: reo <reo_999@proton.me>
* fix(taglib): Add unit test and exclude scan for only unreadable file - #1576
Signed-off-by: reo <reo_999@proton.me>
* fix(taglib): Add unit test and exclude scan for only unreadable file - #1576
Signed-off-by: reo <reo_999@proton.me>
* fix(taglib): Add unit test and exclude scan for only unreadable file - #1576
Signed-off-by: reo <reo_999@proton.me>
* Fix test and simplify code a bit
We don't need to expose the type of error: `taglib.Parse()` always return nil
* Fix comment
Signed-off-by: reo <reo_999@proton.me>
Co-authored-by: Deluan <deluan@navidrome.org>
2026-01-02 20:18:17 +00:00
Deluan
132bfb06df
Fix race condition in scanner
2026-01-02 20:17:21 +00:00
Garvit Galgat
e94c7cc1c9
Don't abort scan if all audio files are in the MediaFolder's root. Fix #868 ( #893 )
...
* fixed #868
* Make sure we only abort scanning if it is not a fullScan
Co-authored-by: Deluan <deluan@navidrome.org>
2026-01-02 20:17:21 +00:00
Deluan
b2ac58070a
Fix race conditions in tests
2026-01-02 20:17:21 +00:00
Zane van Iperen
82c56e1115
Capture "musicbrainz_releasetrackid" tag ( #1827 )
...
* db/migration: typo fix
* model: add MbzReleaseTrackID field
* scanner: capture the musicbrainz_releasetrackid tag
2026-01-02 20:15:58 +00:00
Deluan
8c94a3eef5
Fix formatting
2026-01-02 20:14:54 +00:00
Deluan
0870f600c2
Fix warning about mixing value and pointer receivers
2026-01-02 20:14:54 +00:00
Deluan
54e05638d5
Upgrade to Beego 2's orm
2026-01-02 20:14:54 +00:00
Deluan
2ae0520108
Remove //+build tags, as the code does not compile on older versions of Go anymore
2026-01-02 20:14:54 +00:00
Deluan
90bc1981d8
Upgrade Ginkgo to V2
2026-01-02 20:14:21 +00:00
Deluan
08f56cc7c8
Fix potential SQL injection in Smart Playlists
2026-01-02 20:11:58 +00:00
Deluan
b26c22f3e2
Recover from SIGSEGVs in taglib's code
2026-01-02 20:11:39 +00:00