diff --git a/listenbrainz/listenbrainz.go b/listenbrainz/listenbrainz.go index df442130..d28e3547 100644 --- a/listenbrainz/listenbrainz.go +++ b/listenbrainz/listenbrainz.go @@ -10,6 +10,7 @@ import ( "net/http/httputil" "time" + "go.senan.xyz/gonic" "go.senan.xyz/gonic/db" "go.senan.xyz/gonic/scrobble" ) @@ -44,9 +45,10 @@ func (c *Client) Scrobble(user db.User, track scrobble.Track, stamp time.Time, s payload := &Payload{ TrackMetadata: &TrackMetadata{ AdditionalInfo: &AdditionalInfo{ - TrackNumber: int(track.TrackNumber), - RecordingMBID: track.MusicBrainzID, - TrackLength: int(track.Duration.Seconds()), + TrackNumber: int(track.TrackNumber), + RecordingMBID: track.MusicBrainzID, + Duration: int(track.Duration.Seconds()), + SubmissionClient: gonic.Name, }, ArtistName: track.Artist, TrackName: track.Track, diff --git a/listenbrainz/listenbrainz_test.go b/listenbrainz/listenbrainz_test.go index 13326a72..bab5caf0 100644 --- a/listenbrainz/listenbrainz_test.go +++ b/listenbrainz/listenbrainz_test.go @@ -37,7 +37,14 @@ func TestScrobble(t *testing.T) { err := client.Scrobble( db.User{ListenBrainzURL: "https://listenbrainz.org", ListenBrainzToken: "token1"}, - scrobble.Track{Track: "title", Artist: "artist", Album: "album", TrackNumber: 1}, + scrobble.Track{ + Track: "title", + Artist: "artist", + Album: "album", + TrackNumber: 1, + Duration: 242 * time.Second, + MusicBrainzID: "00000000-0000-0000-0000-000000000000", + }, time.Unix(1683804525, 0), true, ) diff --git a/listenbrainz/model.go b/listenbrainz/model.go index dd7446b8..89ee9181 100644 --- a/listenbrainz/model.go +++ b/listenbrainz/model.go @@ -9,10 +9,11 @@ type ( } AdditionalInfo struct { - TrackNumber int `json:"tracknumber,omitempty"` - TrackMBID string `json:"track_mbid,omitempty"` - RecordingMBID string `json:"recording_mbid,omitempty"` - TrackLength int `json:"track_length,omitempty"` + TrackNumber int `json:"tracknumber,omitempty"` + TrackMBID string `json:"track_mbid,omitempty"` + RecordingMBID string `json:"recording_mbid,omitempty"` + Duration int `json:"duration,omitempty"` + SubmissionClient string `json:"submission_client,omitempty"` } TrackMetadata struct { diff --git a/listenbrainz/testdata/submit_listens_request.json b/listenbrainz/testdata/submit_listens_request.json index c863327d..d67703ef 100644 --- a/listenbrainz/testdata/submit_listens_request.json +++ b/listenbrainz/testdata/submit_listens_request.json @@ -5,7 +5,10 @@ "listened_at": 1683804525, "track_metadata": { "additional_info": { - "tracknumber": 1 + "tracknumber": 1, + "duration": 242, + "recording_mbid": "00000000-0000-0000-0000-000000000000", + "submission_client": "gonic" }, "artist_name": "artist", "track_name": "title",