scrobble with brainz trackid, not album id

This commit is contained in:
sentriz
2020-03-03 15:08:35 +00:00
parent 4db3d678c4
commit 29e9abc1d4
4 changed files with 4 additions and 1 deletions

View File

@@ -78,6 +78,7 @@ type Track struct {
TagDiscNumber int `sql:"default: null"` TagDiscNumber int `sql:"default: null"`
TagGenre *Genre TagGenre *Genre
TagGenreID int `sql:"default: null; type:int REFERENCES genres(id) ON DELETE CASCADE"` TagGenreID int `sql:"default: null; type:int REFERENCES genres(id) ON DELETE CASCADE"`
TagBrainzID string `sql:"default: null"`
} }
func (t *Track) Ext() string { func (t *Track) Ext() string {

View File

@@ -336,6 +336,7 @@ func (s *Scanner) handleTrack(it *item) error {
track.TagTrackArtist = trTags.Artist() track.TagTrackArtist = trTags.Artist()
track.TagTrackNumber = trTags.TrackNumber() track.TagTrackNumber = trTags.TrackNumber()
track.TagDiscNumber = trTags.DiscNumber() track.TagDiscNumber = trTags.DiscNumber()
track.TagBrainzID = trTags.BrainzID()
track.Length = trTags.Length() // these two should be calculated track.Length = trTags.Length() // these two should be calculated
track.Bitrate = trTags.Bitrate() // ...from the file instead of tags track.Bitrate = trTags.Bitrate() // ...from the file instead of tags
// //

View File

@@ -34,6 +34,7 @@ func (t *Tags) firstTag(keys ...string) string {
} }
func (t *Tags) Title() string { return t.firstTag("title") } func (t *Tags) Title() string { return t.firstTag("title") }
func (t *Tags) BrainzID() string { return t.firstTag("musicbrainz_trackid") }
func (t *Tags) Artist() string { return t.firstTag("artist") } func (t *Tags) Artist() string { return t.firstTag("artist") }
func (t *Tags) Album() string { return t.firstTag("album") } func (t *Tags) Album() string { return t.firstTag("album") }
func (t *Tags) AlbumArtist() string { return t.firstTag("albumartist", "album artist") } func (t *Tags) AlbumArtist() string { return t.firstTag("albumartist", "album artist") }

View File

@@ -95,7 +95,7 @@ func Scrobble(apiKey, secret, session string, opts ScrobbleOpts) error {
params.Add("track", opts.Track.TagTitle) params.Add("track", opts.Track.TagTitle)
params.Add("trackNumber", strconv.Itoa(opts.Track.TagTrackNumber)) params.Add("trackNumber", strconv.Itoa(opts.Track.TagTrackNumber))
params.Add("album", opts.Track.Album.TagTitle) params.Add("album", opts.Track.Album.TagTitle)
params.Add("mbid", opts.Track.Album.TagBrainzID) params.Add("mbid", opts.Track.TagBrainzID)
params.Add("albumArtist", opts.Track.Artist.Name) params.Add("albumArtist", opts.Track.Artist.Name)
params.Add("api_sig", getParamSignature(params, secret)) params.Add("api_sig", getParamSignature(params, secret))
_, err := makeRequest("POST", params) _, err := makeRequest("POST", params)