101 Commits

Author SHA1 Message Date
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 Quintão
e17976d454
Don't cache transcoded files if the request was cancelled (#2041)
* Don't cache transcoded files if the request was cancelled (or there was a transcoding error)

* Add context to logs

* Simplify Wait error handling

* Fix flaky test

* Change log level for "populating cache" error message

* Small cleanups
2026-01-02 20:19:53 +00:00
Deluan
5fef41681b
Some cleanup, fixes typos and grammar errors 2026-01-02 20:19:52 +00:00
Deluan
294eadf19e
Remove math/rand and only use crypto/rand 2026-01-02 20:17:21 +00:00
Deluan
9762803326
Reduce number of goroutines in test, to avoid hitting the hard limit of 8128 2026-01-02 20:17:21 +00:00
Deluan
39b5f2ca28
Use custom atomic.Bool, as it is not supported in Go 1.18 2026-01-02 20:17:21 +00:00
Deluan
f729efebbc
Add nilerr linter 2026-01-02 20:15:58 +00:00
Deluan
8c94a3eef5
Fix formatting 2026-01-02 20:14:54 +00:00
Deluan
4bfceb3710
Simplify Singleton usage by leveraging Go 1.18's generics 2026-01-02 20:14:22 +00:00
Deluan
90bc1981d8
Upgrade Ginkgo to V2 2026-01-02 20:14:21 +00:00
Deluan
0245339376
Update @djherbis's packages 2026-01-02 20:14:17 +00:00
Deluan
c4eadb212c
Add missing test case for #1778 2026-01-02 20:13:57 +00:00
Deluan
397f2ba8f8
Fix fscache key mapping. Closes #1778 2026-01-02 20:13:57 +00:00
Deluan
f1fcbe82ab
Ignores invalid timestamps in requests (use current time)
Fix this issue: https://www.reddit.com/r/navidrome/comments/ql3imf/scrobbling_fails_when_using_substreamer/
2026-01-02 20:09:03 +00:00
Deluan
92175a3b2f
Remove temp folders after tests 2026-01-02 20:09:01 +00:00
Deluan
bb29e2bdd6
Fix double escaped lyrics and comments 2026-01-02 20:09:01 +00:00
Deluan
216e51acae
Tweak SimilarSongs algorithm to prioritize the requested main artist 2026-01-02 20:09:00 +00:00
Deluan
7eaf3ebb63
Import smart playlists (extension .nsp) 2026-01-02 20:08:59 +00:00
Deluan
015628ca7f
Bump github.com/djherbis/atime to v1.1.0 2026-01-02 20:08:55 +00:00
Deluan
f9cfc4c63b
Fix "too many SQL variables" error in GetStarred endpoint 2026-01-02 20:06:10 +00:00
Deluan
325ad01aba
Removed unused function 2026-01-02 20:06:10 +00:00
Deluan
e63769051f
Remove dependency of deprecated ioutil package 2026-01-02 20:06:10 +00:00
Deluan
5989a3d4fb
Use fs.FS in MergeFS implementation 2026-01-02 20:06:09 +00:00
Deluan
52510a55c4
Add genre tables, read multiple-genres from tags 2026-01-02 20:06:08 +00:00
Deluan
5142a842f4
Fix small lint errors found by gocritic 2026-01-02 20:06:07 +00:00
Deluan
f0d5ed2104
Remove old feature flag for cache layout 2026-01-02 20:05:07 +00:00
Deluan
b199ce5ee7
Fixed the enduring nasty "too many files open" bug!! Fix #446 2026-01-02 20:05:07 +00:00
Deluan
5db24ff145
Send NowPlaying and Scrobbles to Last.fm 2026-01-02 20:05:04 +00:00
Deluan
1eafd2a2c5
Add concurrency test for singleton 2026-01-02 20:04:23 +00:00
Deluan
7b4b6f8130
New implementation of NowPlaying 2026-01-02 20:04:23 +00:00
Deluan Quintão
5590fa3550
Encrypt passwords in DB (#1187)
* Encode/Encrypt passwords in DB

* Only decrypts passwords if it is necessary

* Add tests for encryption functions
2026-01-02 20:04:16 +00:00
Deluan
df6f611377
Refactored agents calling into its own struct 2026-01-02 19:32:16 +00:00
Deluan
05b91cae0d
Move all Spotify and LastFM code into only one folder for each 2026-01-02 19:31:53 +00:00
Steve Richter
be266c1313
Parse ParamBool case-insensitively (#1151) 2026-01-02 19:31:52 +00:00
Deluan
82be448d37
GetCoverArt returns placeholder if id is missing
This mimics Subsonic behaviour, even if it contradicts the API documentation, which states `id` is required

Fixes #1139
2026-01-02 19:31:52 +00:00
Deluan
8b6e29e9c2
Add tests for WeightedRandomChooser 2026-01-02 19:31:51 +00:00
Deluan
4bbd2a720c
Better SimilarSongs algorithm 2026-01-02 19:31:51 +00:00
Deluan Quintão
48ca8e3174
Retry calls to Last.FM without MBIDs when if returns artist invalid (#1138)
* Call Last.FM's getInfo again without mbid when artist is not found

* Call Last.FM's getSimilar again without mbid when artist is not found

* Call Last.FM's getTopTracks again without mbid when artist is not found
2026-01-02 19:31:51 +00:00
Deluan
a121ab4c70
Replace godirwalk with standard Go 1.16 filepath.WalkDir
Should fix https://github.com/navidrome/navidrome/issues/1048
2026-01-02 19:26:40 +00:00
Deluan
060fc8efcc
Add tests for SpreadFS 2026-01-02 19:26:39 +00:00
Deluan
d5150231cb
Don't panic if fscache could not be initialized due to a FS error 2026-01-02 19:26:38 +00:00
Deluan
78c8e9c75b
Add missing error log message in fscache initialization 2026-01-02 19:26:38 +00:00
Deluan Quintão
165af5b850
Remove dependency of go-bindata (#818)
* Use new embed functionality for serving UI assets

* Use new embed functionality for serving resources. Remove dependency on go-bindata

* Remove Go 1.15
2026-01-02 19:22:04 +00:00
Deluan
769fad8864
Fix race condition in test 2026-01-02 19:21:29 +00:00
Deluan
94da1050e2
Better explanation of NewSpreadFS 2026-01-02 19:21:28 +00:00
Deluan
0a94249d38
Move utilitarian/generic packages to utils: lastfm, spotify, gravatar, cache, and pool 2026-01-02 19:21:28 +00:00
Deluan
10cf2372f8
Move project to Navidrome GitHub organization 2026-01-02 19:20:16 +00:00
Deluan
f8d991cc80
Add denormalized list of artist_ids to album, to speed-up artist's albums queries
This will be removed once we have a proper many-to-many relationship between album and artist
2026-01-02 19:20:11 +00:00