Skip to content

Commit

Permalink
fix: don't send listenbrainz playing_now and submitted_at at the same…
Browse files Browse the repository at this point in the history
… time

fixes #168
  • Loading branch information
sentriz committed Nov 6, 2021
1 parent 4781a74 commit b07b9a8
Showing 1 changed file with 19 additions and 18 deletions.
37 changes: 19 additions & 18 deletions server/scrobble/listenbrainz/listenbrainz.go
Expand Up @@ -27,26 +27,26 @@ var (
)

type AdditionalInfo struct {
TrackNumber int `json:"tracknumber"`
TrackMBID string `json:"track_mbid"`
TrackLength int `json:"track_length"`
TrackNumber int `json:"tracknumber,omitempty"`
TrackMBID string `json:"track_mbid,omitempty"`
TrackLength int `json:"track_length,omitempty"`
}

type TrackMetadata struct {
AdditionalInfo AdditionalInfo `json:"additional_info"`
ArtistName string `json:"artist_name"`
TrackName string `json:"track_name"`
ReleaseName string `json:"release_name"`
AdditionalInfo *AdditionalInfo `json:"additional_info"`
ArtistName string `json:"artist_name,omitempty"`
TrackName string `json:"track_name,omitempty"`
ReleaseName string `json:"release_name,omitempty"`
}

type Payload struct {
ListenedAt int `json:"listened_at"`
TrackMetadata TrackMetadata `json:"track_metadata"`
ListenedAt int `json:"listened_at,omitempty"`
TrackMetadata *TrackMetadata `json:"track_metadata"`
}

type Scrobble struct {
ListenType string `json:"listen_type"`
Payload []Payload `json:"payload"`
ListenType string `json:"listen_type,omitempty"`
Payload []*Payload `json:"payload"`
}

type Scrobbler struct{}
Expand All @@ -55,10 +55,9 @@ func (s *Scrobbler) Scrobble(user *db.User, track *db.Track, stamp time.Time, su
if user.ListenBrainzURL == "" || user.ListenBrainzToken == "" {
return nil
}
payload := Payload{
ListenedAt: int(stamp.Unix()),
TrackMetadata: TrackMetadata{
AdditionalInfo: AdditionalInfo{
payload := &Payload{
TrackMetadata: &TrackMetadata{
AdditionalInfo: &AdditionalInfo{
TrackNumber: track.TagTrackNumber,
TrackMBID: track.TagBrainzID,
TrackLength: track.Length,
Expand All @@ -69,10 +68,12 @@ func (s *Scrobbler) Scrobble(user *db.User, track *db.Track, stamp time.Time, su
},
}
scrobble := Scrobble{
ListenType: listenTypeSingle,
Payload: []Payload{payload},
Payload: []*Payload{payload},
}
if !submission {
if submission && len(scrobble.Payload) > 0 {
scrobble.ListenType = listenTypeSingle
scrobble.Payload[0].ListenedAt = int(stamp.Unix())
} else {
scrobble.ListenType = listenTypePlayingNow
}
payloadBuf := bytes.Buffer{}
Expand Down

0 comments on commit b07b9a8

Please sign in to comment.