scan musicbrainz album id to db and scrobble with it
This commit is contained in:
@@ -94,6 +94,7 @@ type Album struct {
|
||||
TagArtistID int `sql:"default: null; type:int REFERENCES artists(id) ON DELETE CASCADE"`
|
||||
TagTitle string `sql:"default: null"`
|
||||
TagTitleUDec string `sql:"default: null"`
|
||||
TagBrainzID string `sql:"default: null"`
|
||||
TagYear int `sql:"default: null"`
|
||||
Tracks []*Track
|
||||
ChildCount int `sql:"-"`
|
||||
|
||||
@@ -347,6 +347,7 @@ func (s *Scanner) handleTrack(it *item) error {
|
||||
}
|
||||
folder.TagTitle = trTags.Album()
|
||||
folder.TagTitleUDec = decoded(trTags.Album())
|
||||
folder.TagBrainzID = trTags.AlbumBrainzID()
|
||||
folder.TagYear = trTags.Year()
|
||||
folder.TagArtistID = artist.ID
|
||||
folder.ReceivedTags = true
|
||||
|
||||
@@ -33,15 +33,16 @@ func (t *Tags) firstTag(keys ...string) string {
|
||||
return ""
|
||||
}
|
||||
|
||||
func (t *Tags) Title() string { return t.firstTag("title") }
|
||||
func (t *Tags) Artist() string { return t.firstTag("artist") }
|
||||
func (t *Tags) Album() string { return t.firstTag("album") }
|
||||
func (t *Tags) AlbumArtist() string { return t.firstTag("albumartist", "album artist") }
|
||||
func (t *Tags) Year() int { return intSep(t.firstTag("date", "year"), "-") } // eg. 2019-6-11
|
||||
func (t *Tags) TrackNumber() int { return intSep(t.firstTag("tracknumber"), "/") } // eg. 5/12
|
||||
func (t *Tags) DiscNumber() int { return intSep(t.firstTag("discnumber"), "/") } // eg. 1/2
|
||||
func (t *Tags) Length() int { return t.props.Length }
|
||||
func (t *Tags) Bitrate() int { return t.props.Bitrate }
|
||||
func (t *Tags) Title() string { return t.firstTag("title") }
|
||||
func (t *Tags) Artist() string { return t.firstTag("artist") }
|
||||
func (t *Tags) Album() string { return t.firstTag("album") }
|
||||
func (t *Tags) AlbumArtist() string { return t.firstTag("albumartist", "album artist") }
|
||||
func (t *Tags) AlbumBrainzID() string { return t.firstTag("musicbrainz_albumid") }
|
||||
func (t *Tags) Year() int { return intSep(t.firstTag("date", "year"), "-") } // eg. 2019-6-11
|
||||
func (t *Tags) TrackNumber() int { return intSep(t.firstTag("tracknumber"), "/") } // eg. 5/12
|
||||
func (t *Tags) DiscNumber() int { return intSep(t.firstTag("discnumber"), "/") } // eg. 1/2
|
||||
func (t *Tags) Length() int { return t.props.Length }
|
||||
func (t *Tags) Bitrate() int { return t.props.Bitrate }
|
||||
|
||||
func intSep(in, sep string) int {
|
||||
if in == "" {
|
||||
|
||||
Binary file not shown.
@@ -50,9 +50,10 @@ func Scrobble(apiKey, secret, session string, track *model.Track,
|
||||
params.Add("sk", session)
|
||||
params.Add("artist", track.TagTrackArtist)
|
||||
params.Add("track", track.TagTitle)
|
||||
params.Add("album", track.Album.TagTitle)
|
||||
params.Add("albumArtist", track.Artist.Name)
|
||||
params.Add("trackNumber", strconv.Itoa(track.TagTrackNumber))
|
||||
params.Add("album", track.Album.TagTitle)
|
||||
params.Add("mbid", track.Album.TagBrainzID)
|
||||
params.Add("albumArtist", track.Artist.Name)
|
||||
params.Add("api_sig", getParamSignature(params, secret))
|
||||
_, err := makeRequest("POST", params)
|
||||
return err
|
||||
|
||||
Reference in New Issue
Block a user