183 Commits

Author SHA1 Message Date
Deluan
05521781a8
fix(server): encrypt jwt secret at rest
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-02 20:41:57 +00:00
Deluan
75263e5b8f
refactor: reduce GC pressure by pre-allocating slices
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-02 20:41:56 +00:00
Deluan Quintão
202b64ce9e
feat: cache login background images (#3462)
* feat: use direct links to unsplash for background images

Signed-off-by: Deluan <deluan@navidrome.org>

* feat: cache images from unsplash

Signed-off-by: Deluan <deluan@navidrome.org>

* refactor: use cache.HTTPClient to reduce complexity

Signed-off-by: Deluan <deluan@navidrome.org>

* refactor: remove magic numbers

Signed-off-by: Deluan <deluan@navidrome.org>

---------

Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-02 20:41:22 +00:00
Deluan Quintão
e4c12c8739
refactor: small improvements and clean up (#3423)
* refactor: replace custom map functions with slice.Map

* refactor: extract StringerValue function

* refactor: removed unnecessary if

* chore: removed invalid comment

* refactor: replace more map functions

* chore: fix FFmpeg typo
2026-01-02 20:41:04 +00:00
Deluan Quintão
f3f66da3da
refactor(server): replace RangeByChunks with Go 1.23 iterators (#3292)
* refactor(server): replace RangeByChunks with Go 1.23 iterators

* chore: fix comments re: SQLITE_MAX_VARIABLE_NUMBER

* test: improve playqueue test

* refactor(server): don't create a new iterator when it is not required
2026-01-02 20:39:44 +00:00
Deluan
2664808fa6
fix(subsonic): random albums not reshuffling.
See: https://github.com/navidrome/navidrome/issues/3277#issuecomment-2364269787
2026-01-02 20:39:43 +00:00
Deluan
be25753d37
fix(scanner): improve M3U playlist import times (#2706) 2026-01-02 20:39:42 +00:00
Deluan
5365695413
Allow searching songs by filepath, for songs without Title 2026-01-02 20:39:41 +00:00
Deluan
e87cb6df1e
Remove potential integer overflow conversion uint64 -> int64 2026-01-02 20:39:13 +00:00
Deluan Quintão
819d0afd03
Upgrade Go to 1.23 (#3190)
* Upgrade to Golang 1.23rc1

* Fix imports

* Go 1.23 final version

* Fix lint compatibility with ci-goreleaser
2026-01-02 20:38:44 +00:00
Deluan
ad91d7d9cb
Use SHA256 in Gravatar URLs 2026-01-02 20:37:17 +00:00
Deluan
7ffbaeea73
Fix race condition 2026-01-02 20:37:17 +00:00
Deluan
89138e75f4
Evict expired items from SimpleCache 2026-01-02 20:37:15 +00:00
Deluan
843d48f448
Upgrade to ttlcache/v3 2026-01-02 20:37:15 +00:00
Deluan
d2a178e11d
Also use SimpleCache in cache.HTTPClient 2026-01-02 20:37:15 +00:00
Deluan
10ab9cfb55
Wrap ttlcache in our own SimpleCache implementation 2026-01-02 20:37:15 +00:00
Deluan
08d1e3a50c
More micro-optimizations 2026-01-02 20:36:59 +00:00
Deluan
04bfa0ea72
Initialize Index Groups regex just once 2026-01-02 20:36:59 +00:00
Deluan
c48d3b3526
Replace gg.If with cmp.Or 2026-01-02 20:36:59 +00:00
Deluan
f6552d9e36
Small refactoring 2026-01-02 20:36:59 +00:00
Deluan
38a219648d
Refactor string utilities into its own package str 2026-01-02 20:36:59 +00:00
Deluan
30671bf0dc
Fix tests expectations 2026-01-02 20:36:59 +00:00
Deluan
c98da13299
Fix G404 gosec lint error 2026-01-02 20:36:58 +00:00
Deluan
e39efece28
Fix 32 bits builds 2026-01-02 20:36:58 +00:00
Deluan
acb7468fdb
Make first WebUI random page stick 2026-01-02 20:36:58 +00:00
Deluan
f238669779
Add missing Test function 2026-01-02 20:36:58 +00:00
Guilherme Souza
c9a39d9986
Deterministic pagination in random albums sort (#1841)
* Deterministic pagination in random albums sort

* Reseed on first random page

* Add unit tests

* Use rand in Subsonic API

* Use different seeds per user on SEEDEDRAND() SQLite3 function

* Small refactor

* Fix id mismatch

* Add seeded random to media_file (subsonic endpoint `getRandomSongs`)

* Refactor

* Remove unneeded import

---------

Co-authored-by: Deluan <deluan@navidrome.org>
2026-01-02 20:36:58 +00:00
Deluan
880af2efe1
Refactor random.WeightedChooser, unsing generics 2026-01-02 20:36:57 +00:00
Deluan
7057bd104d
Refactor to use more Go 1.22 features 2026-01-02 20:36:56 +00:00
Deluan
f22aeee58f
Remove duplicated test 2026-01-02 20:36:56 +00:00
Deluan
5d8b10635e
Simplify random.Int64 usage with generics 2026-01-02 20:36:56 +00:00
Deluan
af627aa18e
Refactor random functions 2026-01-02 20:36:56 +00:00
Deluan
2b13262b25
Uses Unix milliseconds support from standard Go lib 2026-01-02 20:36:56 +00:00
Deluan
56964b676d
Refactor cache.HTTPClient 2026-01-02 20:36:56 +00:00
Deluan
d6d65b43ae
Refactor merge.FS 2026-01-02 20:36:56 +00:00
Deluan Quintão
9e9f72ae8a
Make sorting lists by name/title case-insensitive (#2993)
* Make sort by order_* fields case-insensitive.

* Sort internet radios by name case-insensitive
2026-01-02 20:36:55 +00:00
Deluan
044ef35d8e
Fix int types in OpenSubsonic responses.
Refer to https://support.symfonium.app/t/symfonium-sync-crashes-when-tpos-is-not-an-int/4204
2026-01-02 20:35:32 +00:00
Deluan
d642d6f60f
Move TempFileName to utils 2026-01-02 20:33:14 +00:00
Deluan
bb0c49e8ba
Use Go builtin min/max func 2026-01-02 20:33:14 +00:00
Deluan
d7b7626488
Bump github.com/jellydator/ttlcache/v2 to v2.11.1 2026-01-02 20:33:14 +00:00
Caio Cotts
b57ba9e232
Fix null values in DB (#2840)
* Fix album image_files being null.

* Fix small nitpick.

* Use ExecContext instead of Exec.

* Change more columns to not null and set default values.

* Remove columns that don't need to be changed from migration.

* Fix typo.

* Remove unnecessary select statements.

* Remove duplicate code.

* Do not apply changes to radio table.

* Do not apply changes full_text columns and respective indexes.

* Fix musicbrainz columns.

* Rename migration.

* Make ExternalInfoUpdatedAt nullable

* Make Share's timestamps nullable

---------

Co-authored-by: Deluan Quintão <deluan@navidrome.org>
2026-01-02 20:32:59 +00:00
Deluan
f200b48723
Small readability improvement in MergeFS tests 2026-01-02 20:32:58 +00:00
Deluan
1e7fafdf4f
Make the GetInstance concurrent test more readable 2026-01-02 20:32:37 +00:00
Deluan
3e9890184b
Optimize Singleton (sometimes a simple lock is a better solution) 2026-01-02 20:32:37 +00:00
Deluan
a3ce0e9454
Add todo as a reminder to replace min/max in Go 1.22 2026-01-02 20:32:36 +00:00
Deluan
81bf9d23e4
Replace all utils.Param* with req.Params 2026-01-02 20:32:36 +00:00
Deluan
b932d0cbf1
Add req.Params to replace utils.Param* 2026-01-02 20:32:36 +00:00
Deluan
ae2f64a422
Removed unused diodes package 2026-01-02 20:32:12 +00:00
Deluan
b2863cceb9
Fix FileHaunter tests 2026-01-02 20:31:56 +00:00
Deluan
14031f96e1
Fix FileHaunter tests 2026-01-02 20:31:56 +00:00