feat(lyrics): detect Lyricsfile YAML in content-sniffing

This commit is contained in:
Deluan 2026-06-19 14:03:02 -04:00
commit 7559e20d41
2 changed files with 16 additions and 0 deletions

View file

@ -31,6 +31,10 @@ func ParseEmbedded(language, text string) (LyricList, error) {
log.Warn("Error parsing embedded SRT lyrics, falling back to plain lyrics", "error", err)
}
if lyricsList, err := ParseLyricsfile(text); err == nil && len(lyricsList) > 0 {
return lyricsList, nil
}
lyric, err := ToLyrics(language, text)
if err != nil {
return nil, err

View file

@ -157,4 +157,16 @@ Another subtitle line`
}
Expect(strings.Join(values, "\n")).To(ContainSubstring("Broken"))
})
It("detects a Lyricsfile YAML payload via content-sniffing", func() {
yaml := "version: \"1.0\"\nmetadata:\n title: Song\n language: eng\nlines:\n - text: sniffed yaml line\n start_ms: 1000\n"
list, err := ParseEmbedded("eng", yaml)
Expect(err).ToNot(HaveOccurred())
Expect(list).To(HaveLen(1))
Expect(list[0].Synced).To(BeTrue())
Expect(list[0].Line).To(HaveLen(1))
Expect(list[0].Line[0].Value).To(Equal("sniffed yaml line"))
})
})