feat(scrobble): only send musicbrainz id if it's a valid uuid

since some people may have a non musicbrainz uuid in the tag's place. eg with the discogs/lastfm plugins for beets.io
This commit is contained in:
Alex McGrath
2022-12-08 17:34:24 +00:00
committed by Senan Kelly
parent 4280700621
commit 2bc3f31554
2 changed files with 16 additions and 2 deletions

View File

@@ -14,6 +14,7 @@ import (
"strconv"
"time"
"github.com/google/uuid"
"go.senan.xyz/gonic/db"
"go.senan.xyz/gonic/scrobble"
)
@@ -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
}