From ab6be8d2dc8ae246185cc8d0b2f0f54c633c7433 Mon Sep 17 00:00:00 2001 From: jan666 Date: Tue, 22 Nov 2022 15:32:46 +0100 Subject: [PATCH] Listenbrainz Scrobble (#2009) - send SubmissionClient and SubmissionClientVersion --- core/agents/listenbrainz/agent.go | 10 ++++++---- core/agents/listenbrainz/agent_test.go | 9 ++++++--- core/agents/listenbrainz/client.go | 10 ++++++---- 3 files changed, 18 insertions(+), 11 deletions(-) diff --git a/core/agents/listenbrainz/agent.go b/core/agents/listenbrainz/agent.go index 069fa1da5..c3abfb1f9 100644 --- a/core/agents/listenbrainz/agent.go +++ b/core/agents/listenbrainz/agent.go @@ -51,10 +51,12 @@ func (l *listenBrainzAgent) formatListen(track *model.MediaFile) listenInfo { TrackName: track.Title, ReleaseName: track.Album, AdditionalInfo: additionalInfo{ - TrackNumber: track.TrackNumber, - ArtistMbzIDs: []string{track.MbzArtistID}, - TrackMbzID: track.MbzTrackID, - ReleaseMbID: track.MbzAlbumID, + SubmissionClient: consts.AppName, + SubmissionClientVersion: consts.Version, + TrackNumber: track.TrackNumber, + ArtistMbzIDs: []string{track.MbzArtistID}, + TrackMbzID: track.MbzTrackID, + ReleaseMbID: track.MbzAlbumID, }, }, } diff --git a/core/agents/listenbrainz/agent_test.go b/core/agents/listenbrainz/agent_test.go index a05f4d640..1c17ec579 100644 --- a/core/agents/listenbrainz/agent_test.go +++ b/core/agents/listenbrainz/agent_test.go @@ -8,6 +8,7 @@ import ( "net/http" "time" + "github.com/navidrome/navidrome/consts" "github.com/navidrome/navidrome/core/scrobbler" "github.com/navidrome/navidrome/model" "github.com/navidrome/navidrome/tests" @@ -56,9 +57,11 @@ var _ = Describe("listenBrainzAgent", func() { "TrackName": Equal(track.Title), "ReleaseName": Equal(track.Album), "AdditionalInfo": MatchAllFields(Fields{ - "TrackNumber": Equal(track.TrackNumber), - "TrackMbzID": Equal(track.MbzTrackID), - "ReleaseMbID": Equal(track.MbzAlbumID), + "SubmissionClient": Equal(consts.AppName), + "SubmissionClientVersion": Equal(consts.Version), + "TrackNumber": Equal(track.TrackNumber), + "TrackMbzID": Equal(track.MbzTrackID), + "ReleaseMbID": Equal(track.MbzAlbumID), "ArtistMbzIDs": MatchAllElements(idArtistId, Elements{ "mbz-789": Equal(track.MbzArtistID), }), diff --git a/core/agents/listenbrainz/client.go b/core/agents/listenbrainz/client.go index 674a95877..d4f588f65 100644 --- a/core/agents/listenbrainz/client.go +++ b/core/agents/listenbrainz/client.go @@ -73,10 +73,12 @@ type trackMetadata struct { } type additionalInfo struct { - TrackNumber int `json:"tracknumber,omitempty"` - TrackMbzID string `json:"track_mbid,omitempty"` - ArtistMbzIDs []string `json:"artist_mbids,omitempty"` - ReleaseMbID string `json:"release_mbid,omitempty"` + SubmissionClient string `json:"submission_client,omitempty"` + SubmissionClientVersion string `json:"submission_client_version,omitempty"` + TrackNumber int `json:"tracknumber,omitempty"` + TrackMbzID string `json:"track_mbid,omitempty"` + ArtistMbzIDs []string `json:"artist_mbids,omitempty"` + ReleaseMbID string `json:"release_mbid,omitempty"` } func (c *Client) ValidateToken(ctx context.Context, apiKey string) (*listenBrainzResponse, error) {