Deluan
f729efebbc
Add nilerr linter
2026-01-02 20:15:58 +00:00
Deluan
d66b04750b
Add errorlint linter
2026-01-02 20:15:58 +00:00
Deluan
03128f2b97
Fix error comparisons
2026-01-02 20:15:58 +00:00
Andy Klimczak
b560dad1bc
feat: Add listenbrainz base url configuration ( #1774 )
...
* feat: Add listenbrainz base url configuration
- ListenBrainz.BaseURL config value
* Don't need to store baseUrl
* Use `url.JoinPath` to concatenate url paths
* Replace url.JoinPath (Go 1.19 only) with custom function
Co-authored-by: Deluan <deluan@navidrome.org>
2026-01-02 20:15:29 +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
913d75b9f2
Fix loading overridden translations from ${DataFolder}/resources/i18n
2026-01-02 20:11:58 +00:00
Deluan
7be85ed032
Better logging for agents configuration
2026-01-02 20:11:57 +00:00
Deluan
0892dacb83
Allow overriding name and comment when importing NSP playlists
2026-01-02 20:11:39 +00:00
Steve Richter
babc48c29d
Rename ListenBrainz config flag and enable by default ( #1443 )
2026-01-02 20:11:36 +00:00
Deluan
9d40694ae6
Fix playlist cannot be empty via Subsonic API
2026-01-02 20:09:31 +00:00
Deluan
bc765d02af
Better logging of GetSimilar call
2026-01-02 20:09:30 +00:00
Deluan
0aff70f816
Smarter cache of external info calls (last.fm / spotify)
2026-01-02 20:09:30 +00:00
Deluan
8fb11946f9
More info in scrobbling logs
2026-01-02 20:09:03 +00:00
Deluan
3ea764141f
Use new rest lib (Update receives all columns that need to be updated)
2026-01-02 20:09:03 +00:00
Deluan
81d039232c
Ignore empty lines in M3U files
2026-01-02 20:09:02 +00:00
Deluan
23fa956d6b
Add owner_id to playlist
2026-01-02 20:09:02 +00:00
Steve Richter
310ce67c2e
Listenbrainz scrobbling ( #1424 )
...
* Refactor session_keys to its own package
* Adjust play_tracker
- Don't send external NowPlaying/Scrobble for tracks with unknown artist
- Continue to the next agent on error
* Implement ListenBrainz Agent and Auth Router
* Implement frontend for ListenBrainz linking
* Update listenBrainzRequest
- Don't marshal Player to json
- Rename Track to Title
* Return ErrRetryLater on ListenBrainz server errors
* Add tests for listenBrainzAgent
* Add tests for ListenBrainz Client
* Adjust ListenBrainzTokenDialog to handle errors better
* Refactor listenbrainz.formatListen and listenBrainzRequest structs
* Refactor agent auth_routers
* Refactor session_keys to agents package
* Add test for listenBrainzResponse
* Add tests for ListenBrainz auth_router
* Update ListenBrainzTokenDialog and auth_router
* Adjust player scrobble toggle
2026-01-02 20:09:02 +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
a0914f565f
Fix lint
2026-01-02 20:09:00 +00:00
Deluan
9ca4fb538b
Optimize playlist updates
2026-01-02 20:09:00 +00:00
Deluan
216e51acae
Tweak SimilarSongs algorithm to prioritize the requested main artist
2026-01-02 20:09:00 +00:00
Deluan
d905f90692
Don't read the whole smart playlist file in memory
2026-01-02 20:09:00 +00:00
Deluan
dc70dc99c8
Better way to match top songs from external sources (Last.fm)
2026-01-02 20:09:00 +00:00
Deluan
557a78f192
Removed unused code
2026-01-02 20:08:59 +00:00
Deluan
a2264b3d39
Update stats of Smart Playlist when it is created
...
Also fix loadTracks
2026-01-02 20:08:59 +00:00
Deluan
674aab0ce5
Don't import invalid .nsp files
2026-01-02 20:08:59 +00:00
Deluan
1ccae7b21c
Use new Criteria and remove SmartPlaylist struct
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
Deluan
2939c96bd8
Reduce number of queries for some playlists operations.
...
Also allow admins to update/delete playlists from other users in the Subsonic API. Closes #1366
2026-01-02 20:08:58 +00:00
Tucker Kern
0a35a8b9a7
Improve performance of placeholder images ( #1325 )
...
* Don't include updatedAt field when fetching album art placeholder. This will allow browers to cache the place holder
* Apply resizing to placeholder image
* Fix issues discovered by CI linter and prettier
* Updates from PR review
2026-01-02 20:06:33 +00:00
Deluan
988cb46862
Fix loadSimilar method, was causing "internal error". Fix #1293
2026-01-02 20:06:12 +00:00
Deluan
040a0b1686
Fix getTopSongs endpoint
2026-01-02 20:06:12 +00:00
Deluan
f39d23e71d
Small refactorings
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
1e5b6a3c54
Small refactorings
2026-01-02 20:06:09 +00:00
Deluan
15b3994d13
Remove unnecessary repositories methods
2026-01-02 20:06:08 +00:00
Deluan
f4a2f59b7d
Removed unused attributes in Last.fm responses
2026-01-02 20:06:07 +00:00
Deluan
5142a842f4
Fix small lint errors found by gocritic
2026-01-02 20:06:07 +00:00
Deluan
ea2e3b692d
Fix Last.fm's artist.getInfo
2026-01-02 20:05:07 +00:00
Deluan
ff61d5f630
Better scrobble log message when buffer is disabled
2026-01-02 20:05:07 +00:00
Deluan
5f9c7d1507
Add feature flag for buffered scrobbling
2026-01-02 20:05:07 +00:00
Deluan
75cc2580b7
Disable Last.FM features based on LastFM.Enabled config option
2026-01-02 20:05:07 +00:00
Deluan
6d46689622
Implement Scrobble buffering/retrying
2026-01-02 20:05:07 +00:00
Deluan
b23918816d
Only show message after 2 seconds, giving time for the browser to close it first
2026-01-02 20:05:06 +00:00
Deluan
6a254c8b67
Pass userId explicitly to UserPropsRepository methods
2026-01-02 20:05:06 +00:00
Deluan
33447c73b6
Skip songs with less than 31 seconds, as per Last.fm specification
...
See https://www.last.fm/api/scrobbling#when-is-a-scrobble-a-scrobble
2026-01-02 20:05:05 +00:00
Deluan
006b8d0d4a
Add option to disable external scrobbling per player
2026-01-02 20:05:05 +00:00