JSPF: Include full LB additional info in metadata

This commit is contained in:
Philipp Wolfer 2023-11-23 08:28:17 +01:00
parent 36cc41d05d
commit 68b2e649f0
No known key found for this signature in database
GPG key ID: 8FDF744D4919943B
3 changed files with 100 additions and 14 deletions

View file

@ -75,29 +75,31 @@ func (b *JSPFBackend) ImportLoves(export models.LovesResult, importResult models
return importResult, nil
}
func listenAsTrack(listen models.Listen) Track {
track := trackAsTrack(listen.Track)
extension := makeMusicBrainzExtension(listen.Track)
extension.AddedAt = listen.ListenedAt
extension.AddedBy = listen.UserName
func listenAsTrack(l models.Listen) Track {
l.FillAdditionalInfo()
track := trackAsTrack(l.Track)
extension := makeMusicBrainzExtension(l.Track)
extension.AddedAt = l.ListenedAt
extension.AddedBy = l.UserName
track.Extension[MusicBrainzTrackExtensionId] = extension
if listen.RecordingMbid != "" {
track.Identifier = append(track.Identifier, "https://musicbrainz.org/recording/"+string(listen.RecordingMbid))
if l.RecordingMbid != "" {
track.Identifier = append(track.Identifier, "https://musicbrainz.org/recording/"+string(l.RecordingMbid))
}
return track
}
func loveAsTrack(love models.Love) Track {
track := trackAsTrack(love.Track)
extension := makeMusicBrainzExtension(love.Track)
extension.AddedAt = love.Created
extension.AddedBy = love.UserName
func loveAsTrack(l models.Love) Track {
l.FillAdditionalInfo()
track := trackAsTrack(l.Track)
extension := makeMusicBrainzExtension(l.Track)
extension.AddedAt = l.Created
extension.AddedBy = l.UserName
track.Extension[MusicBrainzTrackExtensionId] = extension
if love.RecordingMbid != "" {
track.Identifier = append(track.Identifier, "https://musicbrainz.org/recording/"+string(love.RecordingMbid))
if l.RecordingMbid != "" {
track.Identifier = append(track.Identifier, "https://musicbrainz.org/recording/"+string(l.RecordingMbid))
}
return track
@ -129,6 +131,9 @@ func makeMusicBrainzExtension(t models.Track) MusicBrainzTrackExtension {
extension.ReleaseIdentifier = "https://musicbrainz.org/release/" + string(t.ReleaseMbid)
}
// The tracknumber tag would be redundant
delete(extension.AdditionalMetadata, "tracknumber")
return extension
}