jspf: add MB extension, if it does not exist

This commit is contained in:
Philipp Wolfer 2025-05-04 11:43:26 +02:00
parent 873a1b88af
commit 45aeeb7087
No known key found for this signature in database
GPG key ID: 8FDF744D4919943B

View file

@ -77,14 +77,11 @@ func (b *JSPFBackend) InitConfig(config *config.ServiceConfig) error {
Title: config.GetString("title"),
Creator: config.GetString("username"),
Identifier: config.GetString("identifier"),
Date: time.Now(),
Tracks: make([]jspf.Track, 0),
Extension: jspf.ExtensionMap{
jspf.MusicBrainzPlaylistExtensionID: jspf.MusicBrainzPlaylistExtension{
LastModifiedAt: time.Now(),
Public: true,
},
},
}
b.addMusicBrainzPlaylistExtension()
return nil
}
@ -327,6 +324,7 @@ func (b *JSPFBackend) readJSPF() error {
return err
}
b.playlist = playlist.Playlist
b.addMusicBrainzPlaylistExtension()
}
}
@ -346,3 +344,13 @@ func (b *JSPFBackend) writeJSPF() error {
defer file.Close()
return playlist.Write(file)
}
func (b *JSPFBackend) addMusicBrainzPlaylistExtension() {
if b.playlist.Extension == nil {
b.playlist.Extension = make(jspf.ExtensionMap, 1)
}
extension := jspf.MusicBrainzPlaylistExtension{Public: true}
b.playlist.Extension.Get(jspf.MusicBrainzPlaylistExtensionID, &extension)
extension.LastModifiedAt = time.Now()
b.playlist.Extension[jspf.MusicBrainzPlaylistExtensionID] = extension
}