375 Commits

Author SHA1 Message Date
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
Deluan
e632893e62
Fix logging smart playlist's song count 2026-01-02 20:11:39 +00:00
Deluan
b39c5bd11f
Simplify prototype definition for taglib_read 2026-01-02 20:09:31 +00:00
Deluan
bb29e2bdd6
Fix double escaped lyrics and comments 2026-01-02 20:09:01 +00:00
Deluan
dc70dc99c8
Better way to match top songs from external sources (Last.fm) 2026-01-02 20:09:00 +00:00
Deluan
674aab0ce5
Don't import invalid .nsp files 2026-01-02 20:08:59 +00:00
Deluan
7eaf3ebb63
Import smart playlists (extension .nsp) 2026-01-02 20:08:59 +00:00
Deluan
874926481b
Add methods to Playlist model
Also, don't load genres for Playlists tracks (not necessary for now)
2026-01-02 20:08:58 +00:00