Skip to content

Commit

Permalink
fix(listenbrainz): set track length submission and include submission…
Browse files Browse the repository at this point in the history
… client details (#424)

* Fixed ListenBrainz track duration submission

* Include submission client info in ListenBrainz payload

* Extended ListenBrainz test
  • Loading branch information
phw committed Dec 10, 2023
1 parent 688f9d3 commit b27c02f
Show file tree
Hide file tree
Showing 4 changed files with 22 additions and 9 deletions.
8 changes: 5 additions & 3 deletions listenbrainz/listenbrainz.go
Expand Up @@ -10,6 +10,7 @@ import (
"net/http/httputil"
"time"

"go.senan.xyz/gonic"
"go.senan.xyz/gonic/db"
"go.senan.xyz/gonic/scrobble"
)
Expand Down Expand Up @@ -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,
Expand Down
9 changes: 8 additions & 1 deletion listenbrainz/listenbrainz_test.go
Expand Up @@ -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,
)
Expand Down
9 changes: 5 additions & 4 deletions listenbrainz/model.go
Expand Up @@ -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 {
Expand Down
5 changes: 4 additions & 1 deletion listenbrainz/testdata/submit_listens_request.json
Expand Up @@ -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",
Expand Down

0 comments on commit b27c02f

Please sign in to comment.