fix lrc language

This commit is contained in:
itouakirai 2025-01-26 10:42:19 +08:00 committed by GitHub
parent 3634c018cf
commit c3f7bdb0be
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

19
main.go
View File

@ -1046,8 +1046,11 @@ 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
if len(parsedTTML.FindElement("tt").FindElement("head").FindElement("metadata").FindElement("iTunesMetadata").FindElement("translations").FindElements("translation")) > 0 { iTunesMetadata := parsedTTML.FindElement("tt").FindElement("head").FindElement("metadata").FindElement("iTunesMetadata")
divs = parsedTTML.FindElement("tt").FindElement("head").FindElement("metadata").FindElement("iTunesMetadata").FindElement("translations").FindElements("translation") if len(iTunesMetadata.FindElements("translations")) > 0 {
if len(iTunesMetadata.FindElement("translations").FindElements("translation")) > 0 {
divs = iTunesMetadata.FindElement("translations").FindElements("translation")
}
} }
for _, div := range divs { for _, div := range divs {
@ -1151,10 +1154,14 @@ func conventTTMLToLRC(ttml string) (string, error) {
return "", err return "", err
} }
var text string var text string
if len(parsedTTML.FindElement("tt").FindElement("head").FindElement("metadata").FindElement("iTunesMetadata").FindElement("translations").FindElements("translation")) > 0 { //GET trans
xpath := fmt.Sprintf("//text[@for='%s']", lyric.SelectAttr("itunes:key").Value) iTunesMetadata := parsedTTML.FindElement("tt").FindElement("head").FindElement("metadata").FindElement("iTunesMetadata")
trans := parsedTTML.FindElement("tt").FindElement("head").FindElement("metadata").FindElement("iTunesMetadata").FindElement("translations").FindElement("translation").FindElement(xpath) if len(iTunesMetadata.FindElements("translations")) > 0 {
lyric = trans if len(iTunesMetadata.FindElement("translations").FindElements("translation")) > 0 {
xpath := fmt.Sprintf("//text[@for='%s']", lyric.SelectAttr("itunes:key").Value)
trans := iTunesMetadata.FindElement("translations").FindElement("translation").FindElement(xpath)
lyric = trans
}
} }
if lyric.SelectAttr("text") == nil { if lyric.SelectAttr("text") == nil {
var textTmp []string var textTmp []string