fix lrc metadata trans panic

This commit is contained in:
itouakirai 2025-02-02 22:10:34 +08:00 committed by GitHub
parent c3f7bdb0be
commit e053133a68
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

10
main.go
View File

@ -1046,12 +1046,15 @@ func conventSyllableTTMLToLRC(ttml string) (string, error) {
} }
divs := parsedTTML.FindElement("tt").FindElement("body").FindElements("div") divs := parsedTTML.FindElement("tt").FindElement("body").FindElements("div")
//get trans //get trans
iTunesMetadata := parsedTTML.FindElement("tt").FindElement("head").FindElement("metadata").FindElement("iTunesMetadata") Metadata := parsedTTML.FindElement("tt").FindElement("head").FindElement("metadata")
if len(Metadata.FindElements("iTunesMetadata")) > 0 {
iTunesMetadata := Metadata.FindElement("iTunesMetadata")
if len(iTunesMetadata.FindElements("translations")) > 0 { if len(iTunesMetadata.FindElements("translations")) > 0 {
if len(iTunesMetadata.FindElement("translations").FindElements("translation")) > 0 { if len(iTunesMetadata.FindElement("translations").FindElements("translation")) > 0 {
divs = iTunesMetadata.FindElement("translations").FindElements("translation") divs = iTunesMetadata.FindElement("translations").FindElements("translation")
} }
} }
}
for _, div := range divs { for _, div := range divs {
for _, item := range div.ChildElements() { for _, item := range div.ChildElements() {
@ -1155,7 +1158,9 @@ func conventTTMLToLRC(ttml string) (string, error) {
} }
var text string var text string
//GET trans //GET trans
iTunesMetadata := parsedTTML.FindElement("tt").FindElement("head").FindElement("metadata").FindElement("iTunesMetadata") Metadata := parsedTTML.FindElement("tt").FindElement("head").FindElement("metadata")
if len(Metadata.FindElements("iTunesMetadata")) > 0 {
iTunesMetadata := Metadata.FindElement("iTunesMetadata")
if len(iTunesMetadata.FindElements("translations")) > 0 { if len(iTunesMetadata.FindElements("translations")) > 0 {
if len(iTunesMetadata.FindElement("translations").FindElements("translation")) > 0 { if len(iTunesMetadata.FindElement("translations").FindElements("translation")) > 0 {
xpath := fmt.Sprintf("//text[@for='%s']", lyric.SelectAttr("itunes:key").Value) xpath := fmt.Sprintf("//text[@for='%s']", lyric.SelectAttr("itunes:key").Value)
@ -1163,6 +1168,7 @@ func conventTTMLToLRC(ttml string) (string, error) {
lyric = trans lyric = trans
} }
} }
}
if lyric.SelectAttr("text") == nil { if lyric.SelectAttr("text") == nil {
var textTmp []string var textTmp []string
for _, span := range lyric.Child { for _, span := range lyric.Child {