feat(subsonic): add support for multi-valued album artist tags
closes #103 a a a r a a a a a a a a a a
This commit is contained in:
@@ -29,6 +29,10 @@ func (s *Scrobbler) Scrobble(user *db.User, track *db.Track, stamp time.Time, su
|
||||
if user.LastFMSession == "" {
|
||||
return nil
|
||||
}
|
||||
if track.Album == nil || len(track.Album.Artists) == 0 {
|
||||
return fmt.Errorf("track has no album artists")
|
||||
}
|
||||
|
||||
apiKey, err := s.db.GetSetting("lastfm_api_key")
|
||||
if err != nil {
|
||||
return fmt.Errorf("get api key: %w", err)
|
||||
@@ -46,13 +50,14 @@ func (s *Scrobbler) Scrobble(user *db.User, track *db.Track, stamp time.Time, su
|
||||
} else {
|
||||
params.Add("method", "track.updateNowPlaying")
|
||||
}
|
||||
|
||||
params.Add("api_key", apiKey)
|
||||
params.Add("sk", user.LastFMSession)
|
||||
params.Add("artist", track.TagTrackArtist)
|
||||
params.Add("track", track.TagTitle)
|
||||
params.Add("trackNumber", strconv.Itoa(track.TagTrackNumber))
|
||||
params.Add("album", track.Album.TagTitle)
|
||||
params.Add("albumArtist", track.Artist.Name)
|
||||
params.Add("albumArtist", track.Album.ArtistsString())
|
||||
params.Add("duration", strconv.Itoa(track.Length))
|
||||
|
||||
// make sure we provide a valid uuid, since some users may have an incorrect mbid in their tags
|
||||
|
||||
Reference in New Issue
Block a user