Skip to content

Commit

Permalink
feat(scrobble): only send musicbrainz id if it's a valid uuid
Browse files Browse the repository at this point in the history
since some people may have a non musicbrainz uuid in the tag's place. eg with the discogs/lastfm plugins for beets.io
  • Loading branch information
lxea authored and sentriz committed Dec 8, 2022
1 parent 4280700 commit 2bc3f31
Show file tree
Hide file tree
Showing 2 changed files with 16 additions and 2 deletions.
8 changes: 7 additions & 1 deletion scrobble/lastfm/lastfm.go
Expand Up @@ -14,6 +14,7 @@ import (
"strconv"
"time"

"github.com/google/uuid"
"go.senan.xyz/gonic/db"
"go.senan.xyz/gonic/scrobble"
)
Expand Down Expand Up @@ -260,10 +261,15 @@ func (s *Scrobbler) Scrobble(user *db.User, track *db.Track, stamp time.Time, su
params.Add("track", track.TagTitle)
params.Add("trackNumber", strconv.Itoa(track.TagTrackNumber))
params.Add("album", track.Album.TagTitle)
params.Add("mbid", track.TagBrainzID)
params.Add("albumArtist", track.Artist.Name)
params.Add("duration", strconv.Itoa(track.Length))
params.Add("api_sig", getParamSignature(params, secret))

// make sure we provide a valid uuid, since some users may have an incorrect mbid in their tags
if _, err := uuid.Parse(track.TagBrainzID); err == nil {
params.Add("mbid", track.TagBrainzID)
}

_, err = makeRequest("POST", params)
return err
}
Expand Down
10 changes: 9 additions & 1 deletion scrobble/listenbrainz/listenbrainz.go
Expand Up @@ -10,6 +10,7 @@ import (
"net/http/httputil"
"time"

"github.com/google/uuid"
"go.senan.xyz/gonic/db"
"go.senan.xyz/gonic/scrobble"
)
Expand Down Expand Up @@ -57,11 +58,18 @@ func (s *Scrobbler) Scrobble(user *db.User, track *db.Track, stamp time.Time, su
if user.ListenBrainzURL == "" || user.ListenBrainzToken == "" {
return nil
}

// make sure we provide a valid uuid, since some users may have an incorrect mbid in their tags
var trackMBID string
if _, err := uuid.Parse(track.TagBrainzID); err == nil {
trackMBID = track.TagBrainzID
}

payload := &Payload{
TrackMetadata: &TrackMetadata{
AdditionalInfo: &AdditionalInfo{
TrackNumber: track.TagTrackNumber,
RecordingMBID: track.TagBrainzID,
RecordingMBID: trackMBID,
TrackLength: track.Length,
},
ArtistName: track.TagTrackArtist,
Expand Down

0 comments on commit 2bc3f31

Please sign in to comment.