fix(listenbrainz): submit track recording ID instead of track ID
closes #240
This commit is contained in:
@@ -37,12 +37,14 @@ func (t *Tagger) firstInt(sep string, keys ...string) int {
|
|||||||
return 0
|
return 0
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// https://picard-docs.musicbrainz.org/downloads/MusicBrainz_Picard_Tag_Map.html
|
||||||
|
|
||||||
func (t *Tagger) Title() string { return t.first("title") }
|
func (t *Tagger) Title() string { return t.first("title") }
|
||||||
func (t *Tagger) BrainzID() string { return t.first("musicbrainz_trackid") }
|
func (t *Tagger) BrainzID() string { return t.first("musicbrainz_trackid") } // musicbrainz recording ID
|
||||||
func (t *Tagger) Artist() string { return t.first("artist") }
|
func (t *Tagger) Artist() string { return t.first("artist") }
|
||||||
func (t *Tagger) Album() string { return t.first("album") }
|
func (t *Tagger) Album() string { return t.first("album") }
|
||||||
func (t *Tagger) AlbumArtist() string { return t.first("albumartist", "album artist") }
|
func (t *Tagger) AlbumArtist() string { return t.first("albumartist", "album artist") }
|
||||||
func (t *Tagger) AlbumBrainzID() string { return t.first("musicbrainz_albumid") }
|
func (t *Tagger) AlbumBrainzID() string { return t.first("musicbrainz_albumid") } // musicbrainz release ID
|
||||||
func (t *Tagger) Genre() string { return t.first("genre") }
|
func (t *Tagger) Genre() string { return t.first("genre") }
|
||||||
func (t *Tagger) TrackNumber() int { return t.firstInt("/" /* eg. 5/12 */, "tracknumber") }
|
func (t *Tagger) TrackNumber() int { return t.firstInt("/" /* eg. 5/12 */, "tracknumber") }
|
||||||
func (t *Tagger) DiscNumber() int { return t.firstInt("/" /* eg. 1/2 */, "discnumber") }
|
func (t *Tagger) DiscNumber() int { return t.firstInt("/" /* eg. 1/2 */, "discnumber") }
|
||||||
|
|||||||
@@ -26,10 +26,17 @@ var (
|
|||||||
ErrListenBrainz = errors.New("listenbrainz error")
|
ErrListenBrainz = errors.New("listenbrainz error")
|
||||||
)
|
)
|
||||||
|
|
||||||
|
// https://listenbrainz.readthedocs.io/en/latest/users/json.html#submission-json
|
||||||
|
type Payload struct {
|
||||||
|
ListenedAt int `json:"listened_at,omitempty"`
|
||||||
|
TrackMetadata *TrackMetadata `json:"track_metadata"`
|
||||||
|
}
|
||||||
|
|
||||||
type AdditionalInfo struct {
|
type AdditionalInfo struct {
|
||||||
TrackNumber int `json:"tracknumber,omitempty"`
|
TrackNumber int `json:"tracknumber,omitempty"`
|
||||||
TrackMBID string `json:"track_mbid,omitempty"`
|
TrackMBID string `json:"track_mbid,omitempty"`
|
||||||
TrackLength int `json:"track_length,omitempty"`
|
RecordingMBID string `json:"recording_mbid,omitempty"`
|
||||||
|
TrackLength int `json:"track_length,omitempty"`
|
||||||
}
|
}
|
||||||
|
|
||||||
type TrackMetadata struct {
|
type TrackMetadata struct {
|
||||||
@@ -39,11 +46,6 @@ type TrackMetadata struct {
|
|||||||
ReleaseName string `json:"release_name,omitempty"`
|
ReleaseName string `json:"release_name,omitempty"`
|
||||||
}
|
}
|
||||||
|
|
||||||
type Payload struct {
|
|
||||||
ListenedAt int `json:"listened_at,omitempty"`
|
|
||||||
TrackMetadata *TrackMetadata `json:"track_metadata"`
|
|
||||||
}
|
|
||||||
|
|
||||||
type Scrobble struct {
|
type Scrobble struct {
|
||||||
ListenType string `json:"listen_type,omitempty"`
|
ListenType string `json:"listen_type,omitempty"`
|
||||||
Payload []*Payload `json:"payload"`
|
Payload []*Payload `json:"payload"`
|
||||||
@@ -58,9 +60,9 @@ func (s *Scrobbler) Scrobble(user *db.User, track *db.Track, stamp time.Time, su
|
|||||||
payload := &Payload{
|
payload := &Payload{
|
||||||
TrackMetadata: &TrackMetadata{
|
TrackMetadata: &TrackMetadata{
|
||||||
AdditionalInfo: &AdditionalInfo{
|
AdditionalInfo: &AdditionalInfo{
|
||||||
TrackNumber: track.TagTrackNumber,
|
TrackNumber: track.TagTrackNumber,
|
||||||
TrackMBID: track.TagBrainzID,
|
RecordingMBID: track.TagBrainzID,
|
||||||
TrackLength: track.Length,
|
TrackLength: track.Length,
|
||||||
},
|
},
|
||||||
ArtistName: track.TagTrackArtist,
|
ArtistName: track.TagTrackArtist,
|
||||||
TrackName: track.TagTitle,
|
TrackName: track.TagTitle,
|
||||||
|
|||||||
Reference in New Issue
Block a user