scrobble with brainz trackid, not album id
This commit is contained in:
@@ -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 {
|
||||||
|
|||||||
@@ -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
|
||||||
//
|
//
|
||||||
|
|||||||
@@ -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") }
|
||||||
|
|||||||
@@ -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)
|
||||||
|
|||||||
Reference in New Issue
Block a user