Deluan
9e94cfcffc
refactor: load translations with sync.OnceValues
...
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-02 20:41:55 +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
Kendall Garner
8523c74d71
feat(subsonic): add MusicBrainz ID and Sort Name to getArtists
2026-01-02 20:41:03 +00:00
Deluan
e758337896
feat(subsonic): getOpenSubsonicExtensions is now public
2026-01-02 20:41:03 +00:00
Deluan Quintão
7980ea6909
feat(subsonic): support OS clearing play queue ( #3399 )
2026-01-02 20:41:02 +00:00
Deluan Quintão
d875863847
feat(ui): show user's lastAccess ( #3342 )
...
* feat(server): update user's lastAccess
* feat(ui): show user's lastAccess
2026-01-02 20:40:20 +00:00
crazygolem
3a0ddd5fc4
feat(server): require explicitly enabling reverse proxy auth for unix sockets ( #3062 )
2026-01-02 20:40:19 +00:00
Deluan
4d21ffa0a2
fix(server): allow changing local login background url
2026-01-02 20:40:18 +00:00
Caio Cotts
3b401e15d0
Fix wrong placement of When in test
2026-01-02 20:39:42 +00:00
Caio Cotts
6d5a80a18d
Make the UI use the new ShareURL option
2026-01-02 20:39:42 +00:00
Caio Cotts
d11462a042
Add ShareURL configuration option
2026-01-02 20:39:42 +00:00
Kendall Garner
dd38a28173
Only refresh smart playlist when fetching first track ( #3244 )
...
* Only refresh smart playlist when fetching first track
* res -> w
2026-01-02 20:39:41 +00:00
Deluan
c7b74f58da
Change error code type to avoid integer overflow conversion warning
2026-01-02 20:39:14 +00:00
Deluan
80209c8dfe
Fix lint errors
2026-01-02 20:39:13 +00:00
Deluan
b0f69646ea
Add http headers to trace log
2026-01-02 20:37:15 +00:00
Deluan
fe84788821
Increase artist image url sizes.
...
See https://support.symfonium.app/t/artist-picture-less-compressed/4447
2026-01-02 20:37:00 +00:00
Caio Cotts
821885bd28
Do not use lastFM api key and secret to determine if LastFM.Enabled should be set.
2026-01-02 20:37:00 +00:00
Deluan
59aaf56b0d
Increase artist image url sizes.
...
See https://support.symfonium.app/t/artist-picture-less-compressed/4447
2026-01-02 20:37:00 +00:00
Deluan
c48d3b3526
Replace gg.If with cmp.Or
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
Caio Cotts
ce5a6aa4fd
Fix image stuttering ( #3035 )
...
* Fix image stuttering.
* Fix docker publishing for PRs
* Write tests for new square parameter.
* Simplify code for createImage.
---------
Co-authored-by: Deluan Quintão <deluan@navidrome.org>
2026-01-02 20:36:59 +00:00
Drew Weymouth
1247cb5174
Fix XML marshaling of OpenSubsonic structured lyrics ( #3041 )
2026-01-02 20:36:58 +00:00
Deluan
47068d2dea
Optimize SQLite3 access. Mainly separate read access from write access.
...
Based on tips from https://archive.is/Xfjh6#selection-257.0-278.0
2026-01-02 20:36:58 +00:00
Deluan
c98da13299
Fix G404 gosec lint error
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
b8ac62a13b
Fix lint error
2026-01-02 20:36:57 +00:00
Deluan
ffbc1cebd4
Associate main entities with library
2026-01-02 20:36:57 +00:00
Deluan
82e79073cd
Store MusicFolder as a library in DB
2026-01-02 20:36:57 +00:00
Deluan
b0f6a395a8
Rename MediaFolder to Library
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
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
0a5c72e8f2
Add samplingRate to OpenSubsonic responses
2026-01-02 20:36:56 +00:00
Deluan
d68cdac3d2
Do not panic if when updatePlaylist is called with a non-existent ID.
...
Fix #2876
2026-01-02 20:36:55 +00:00
Deluan
14a379e16c
Replace sync.WaitGroup with more appropriate errgroup.Group
2026-01-02 20:36:55 +00:00
Deluan
6640509044
Make dependency injection more consistent
2026-01-02 20:36:55 +00:00
Deluan
ad89e02a93
Limit access to Jukebox for admins only (configurable).
...
Closes #2849
2026-01-02 20:36:54 +00:00
Deluan
3459141f8c
Add HTTPSecurityHeaders.CustomFrameOptionsValue option.
...
Requested in https://github.com/navidrome/navidrome/issues/248#issuecomment-1783768985
2026-01-02 20:36:33 +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
88b7165362
Load mime_types from external file
2026-01-02 20:35:32 +00:00
crazygolem
7c196d544f
Add support for Reverse Proxy auth in Subsonic endpoints ( #2558 )
...
* feat(subsonic): Add support for Reverse Proxy auth - #2557
Signed-off-by: Jeremiah Menétrey <superjun1@gmail.com>
* Small refactoring
---------
Signed-off-by: Jeremiah Menétrey <superjun1@gmail.com>
Co-authored-by: Deluan Quintão <deluan@navidrome.org>
2026-01-02 20:35:31 +00:00
Deluan
281f611c0e
Add OpenSubsonic channelCount
2026-01-02 20:35:04 +00:00
crazygolem
b75b09e8da
Use the RealIP middleware also behind a reverse proxy ( #2858 )
...
* Use the RealIP middleware only behind a reverse proxy
* Fix proxy ip source in tests
* Fix test for PR#2087
The PR did not update the test after changing the behavior, but the test still
passed because another condition was preventing the user from being created in
the test.
* Use RealIP even without a trusted reverse proxy
* Use own type for context key
* Fix casing to follow go's conventions
* Do not apply RealIP middleware twice
* Fix IP source in logs
The most interesting data point in the log message is the proxy's IP, but
having the client IP too can help identify integration issues.
2026-01-02 20:35:04 +00:00
Deluan
76a906d2d2
Fix DiscTitle OpenSubsonic compatibility. Closes #2929
2026-01-02 20:34:24 +00:00
Kendall Garner
25ef1b25d0
Expose OpenSubsonic release date for album ( #2906 )
...
* [enhancement]: OS expose release date for album, make original optional
* not optional
* remove omitempty
2026-01-02 20:34:24 +00:00
Deluan
a0bac6c068
Send Subsonic formatted response on marshalling errors
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
fd25dbfaa3
Return 500 in case of Subsonic response marshalling errors
2026-01-02 20:33:00 +00:00