166 Commits

Author SHA1 Message Date
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
Deluan
a52a88d1d7
Move user properties (like session keys) to their own table 2026-01-02 20:05:05 +00:00
Deluan
541411322c
Disable completely external scrobblers if feature is disabled (DevEnableScrobble) 2026-01-02 20:05:05 +00:00
Deluan
ffd1aa7e89
Refactor: Consolidate scrobbling logic in play_tracker 2026-01-02 20:05:05 +00:00
Deluan
c0f5b6950f
Don't send scrobbles/nowPlaying updates to Last.fm if user has not authorized 2026-01-02 20:05:04 +00:00
Deluan
6dbeb8fedf
Fix wrong warning about ignored NowPlaying 2026-01-02 20:05:04 +00:00
Deluan
5db24ff145
Send NowPlaying and Scrobbles to Last.fm 2026-01-02 20:05:04 +00:00
Deluan
0a9f6cb807
Refactor Agents to be singleton
Initial work for Last.fm scrobbler
2026-01-02 20:05:04 +00:00
Steve Richter
489d0c54eb
Show user-friendly message when error occurs in Last.fm callback endpoint 2026-01-02 20:05:04 +00:00
Steve Richter
0ecc4b5fd0
Implement Last.fm account linking UI 2026-01-02 20:05:04 +00:00
Deluan
883d316670
Use singleton in other places as well 2026-01-02 20:05:04 +00:00
Deluan
c0c229ad72
Expose Last.fm's ApiKey to UI 2026-01-02 20:05:04 +00:00
Deluan
aa20f7d68e
Implement Last.FM Web authentication flow 2026-01-02 20:05:04 +00:00
Deluan
f468522c72
Implement Last.FM Desktop Auth flow endpoints 2026-01-02 20:05:04 +00:00
Deluan
00834e5e6a
Fix Last.fm API method signature 2026-01-02 20:05:04 +00:00
Deluan
fa7179dc7a
Add Last.FM Authentication methods 2026-01-02 20:05:03 +00:00
Deluan
0057c9f38a
Try to register all playing music in GetNowPlaying 2026-01-02 20:04:23 +00:00
Deluan
1ac077cf22
Fix GetNowPlaying endpoint showing only the last play 2026-01-02 20:04:23 +00:00
Deluan
7b4b6f8130
New implementation of NowPlaying 2026-01-02 20:04:23 +00:00
Deluan
ff27de46c6
Fix index of songs in downloaded playlist 2026-01-02 19:33:05 +00:00