Add fallback artist/title to structured lyrics

This commit is contained in:
Deluan
2023-12-27 18:30:58 -05:00
parent f7d25b17aa
commit 5cd2985e6b
2 changed files with 11 additions and 4 deletions

View File

@@ -324,7 +324,7 @@ func buildAlbumID3(ctx context.Context, album model.Album) responses.AlbumID3 {
return dir
}
func buildStructuredLyric(lyric model.Lyric) responses.StructuredLyric {
func buildStructuredLyric(mf *model.MediaFile, lyric model.Lyric) responses.StructuredLyric {
lines := make([]responses.Line, len(lyric.Line))
for i, line := range lyric.Line {
@@ -343,14 +343,21 @@ func buildStructuredLyric(lyric model.Lyric) responses.StructuredLyric {
Synced: lyric.Synced,
}
if structured.DisplayArtist == "" {
structured.DisplayArtist = mf.Artist
}
if structured.DisplayTitle == "" {
structured.DisplayTitle = mf.Title
}
return structured
}
func buildStructuredLyrics(lyrics model.Lyrics) *responses.LyricsList {
func buildStructuredLyrics(mf *model.MediaFile, lyrics model.Lyrics) *responses.LyricsList {
lyricList := make(responses.StructuredLyrics, len(lyrics))
for i, lyric := range lyrics {
lyricList[i] = buildStructuredLyric(lyric)
lyricList[i] = buildStructuredLyric(mf, lyric)
}
res := &responses.LyricsList{

View File

@@ -145,7 +145,7 @@ func (api *Router) GetLyricsBySongId(r *http.Request) (*responses.Subsonic, erro
}
response := newResponse()
response.LyricsList = buildStructuredLyrics(lyrics)
response.LyricsList = buildStructuredLyrics(mediaFile, lyrics)
return response, nil
}