jan666
ab6be8d2dc
Listenbrainz Scrobble ( #2009 )
...
- send SubmissionClient and SubmissionClientVersion
2022-11-22 09:32:46 -05:00
Deluan
f82df70302
Add nilerr linter
2022-09-30 20:18:14 -04:00
Deluan
77dbafff0f
Add errorlint linter
2022-09-30 19:33:39 -04:00
Deluan
db67c1277e
Fix error comparisons
2022-09-30 18:54:25 -04:00
Andy Klimczak
2f7a3c5eda
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>
2022-09-27 21:06:28 -04:00
Deluan
31882abf6f
Upgrade Ginkgo to V2
2022-07-26 16:53:17 -04:00
Deluan
20cdd38fc4
Better logging for agents configuration
2021-11-25 15:48:32 -05:00
Steve Richter
3bd6f82c80
Rename ListenBrainz config flag and enable by default ( #1443 )
2021-11-17 21:11:53 -05:00
Deluan
d3a2f769b7
Better logging of GetSimilar call
2021-11-03 15:59:16 -04:00
Deluan
053909196c
More info in scrobbling logs
2021-11-02 12:25:29 -04:00
Steve Richter
a56d5bc850
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
2021-10-30 12:17:42 -04:00
Deluan
8afa2cd833
Remove dependency of deprecated ioutil
package
2021-07-20 20:12:28 -04:00
Deluan
03ad6e972a
Removed unused attributes in Last.fm responses
2021-07-16 21:06:47 -04:00
Deluan
b0fc684cb6
Fix small lint errors found by gocritic
2021-07-15 13:43:03 -04:00
Deluan
114fdce09e
Fix Last.fm's artist.getInfo
2021-07-03 21:48:53 -04:00
Deluan
289da56f64
Implement Scrobble buffering/retrying
2021-07-02 10:04:41 -04:00
Deluan
92634a7408
Only show message after 2 seconds, giving time for the browser to close it first
2021-06-25 22:23:35 -04:00
Deluan
ee21f3957e
Pass userId explicitly to UserPropsRepository methods
2021-06-25 22:21:37 -04:00
Deluan
0cbb0acad3
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
2021-06-23 21:08:01 -04:00
Deluan
5001518260
Move user properties (like session keys) to their own table
2021-06-23 17:49:32 -04:00
Deluan
99be8444d3
Disable completely external scrobblers if feature is disabled (DevEnableScrobble
)
2021-06-23 11:01:58 -04:00
Deluan
76acd7da89
Don't send scrobbles/nowPlaying updates to Last.fm if user has not authorized
2021-06-23 11:01:58 -04:00
Deluan
8af7dab23d
Fix wrong warning about ignored NowPlaying
2021-06-23 11:01:58 -04:00
Deluan
a7509c9ff7
Send NowPlaying and Scrobbles to Last.fm
2021-06-23 11:01:58 -04:00
Deluan
d5461d0ae9
Refactor Agents to be singleton
...
Initial work for Last.fm scrobbler
2021-06-23 11:01:58 -04:00
Steve Richter
f9fa9667a3
Show user-friendly message when error occurs in Last.fm callback endpoint
2021-06-23 11:01:58 -04:00
Steve Richter
5fbfd9c81e
Implement Last.fm account linking UI
2021-06-23 11:01:58 -04:00
Deluan
1f997357a9
Expose Last.fm's ApiKey to UI
2021-06-21 18:14:01 -04:00
Deluan
143cde37e5
Implement Last.FM Web authentication flow
2021-06-21 18:14:01 -04:00
Deluan
502a719e96
Implement Last.FM Desktop Auth flow endpoints
2021-06-21 18:14:01 -04:00
Deluan
0495e421fe
Fix Last.fm API method signature
2021-06-21 18:14:01 -04:00
Deluan
a4f91b74d2
Add Last.FM Authentication methods
2021-06-21 18:14:01 -04:00
Deluan
b445cdd641
Use a dedicated api-key/secret pair for Last.FM
2021-06-10 15:07:06 -04:00
Deluan
f9eec5e4dc
Refactored agents calling into its own struct
2021-06-08 17:00:02 -04:00
Deluan
e80cf80d05
Move all Spotify and LastFM code into only one folder for each
2021-06-08 11:25:46 -04:00
Deluan
c5abdc19bc
Fix recursive bug in Last.FM calls without mbid
2021-05-30 22:46:23 -04:00
Deluan
ed01946ace
Embed Last.FM error responses, making the tests faster
2021-05-27 21:04:03 -04:00
Deluan Quintão
89b12b34be
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
2021-05-27 20:53:24 -04:00
Deluan
b398053223
Include a shared Last.FM api key, providing zero conf ArtistInfo (bio/top songs/similar artists)
2021-05-27 16:14:24 -04:00
Deluan
5fdd8b32d7
Move utilitarian/generic packages to utils: lastfm, spotify, gravatar, cache, and pool
2021-02-09 15:33:33 -05:00
Deluan
b855fe865e
Add artist ID to agent's interfaces
2021-02-09 11:19:32 -05:00
Deluan
7cc026ac35
Add some info about how to create new agents
2021-02-08 17:18:43 -05:00
Deluan
fefbe0b117
Cleanup, add Placeholder agent
2021-02-08 16:54:51 -05:00
Deluan
e5cbfac483
Implement TopSongs
2021-02-08 16:54:51 -05:00
Deluan
84a50d5dce
Use MBID in calls to Last.FM, if it is available
2021-02-08 16:54:51 -05:00
Deluan
365dff6435
Fix lint errors
2021-02-08 16:54:51 -05:00
Deluan
877cdf1d5c
Get images
2021-02-08 16:54:51 -05:00
Deluan
28cdf1e693
Add a cached http client
2021-02-08 16:54:51 -05:00
Deluan
9d24106066
Incomplete implementation of agents
2021-02-08 16:54:51 -05:00