Deluan
e0bfb22007
Rename log.LevelCritical to log.LevelFatal
2026-01-02 20:20:16 +00:00
Deluan
5fef41681b
Some cleanup, fixes typos and grammar errors
2026-01-02 20:19:52 +00:00
Deluan
650989c871
Some cleanup, adding missing context handling
2026-01-02 20:19:52 +00:00
Raghd Hamzeh
5d3ae98fcf
fix: send content type header in listenbrainz requests - #1944 ( #1994 )
...
fixes #1944
Signed-off-by: Raghd Hamzeh <raghd@rhamzeh.com>
Signed-off-by: Raghd Hamzeh <raghd@rhamzeh.com>
2026-01-02 20:17:21 +00:00
jan666
37ea26c7ff
Listenbrainz Scrobble ( #2009 )
...
- send SubmissionClient and SubmissionClientVersion
2026-01-02 20:16:31 +00:00
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
90bc1981d8
Upgrade Ginkgo to V2
2026-01-02 20:14:21 +00:00
Deluan
7be85ed032
Better logging for agents configuration
2026-01-02 20:11:57 +00:00
Steve Richter
babc48c29d
Rename ListenBrainz config flag and enable by default ( #1443 )
2026-01-02 20:11:36 +00:00
Deluan
bc765d02af
Better logging of GetSimilar call
2026-01-02 20:09:30 +00:00
Deluan
8fb11946f9
More info in scrobbling logs
2026-01-02 20:09:03 +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
e63769051f
Remove dependency of deprecated ioutil package
2026-01-02 20:06:10 +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
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
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
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
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
7339e1602f
Use a dedicated api-key/secret pair for Last.FM
2026-01-02 19:32:17 +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
Deluan
a71740dec7
Fix recursive bug in Last.FM calls without mbid
2026-01-02 19:31:52 +00:00
Deluan
887ad99e07
Embed Last.FM error responses, making the tests faster
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
5970f18249
Include a shared Last.FM api key, providing zero conf ArtistInfo (bio/top songs/similar artists)
2026-01-02 19:31:51 +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
53b31a1c69
Add artist ID to agent's interfaces
2026-01-02 19:21:28 +00:00
Deluan
f6fdade5f4
Add some info about how to create new agents
2026-01-02 19:21:28 +00:00
Deluan
ac0c5cadc8
Cleanup, add Placeholder agent
2026-01-02 19:21:27 +00:00
Deluan
8666a9aac9
Implement TopSongs
2026-01-02 19:21:27 +00:00
Deluan
01957126fe
Use MBID in calls to Last.FM, if it is available
2026-01-02 19:21:27 +00:00
Deluan
2240844bb2
Fix lint errors
2026-01-02 19:21:27 +00:00