commit
f8a79ed17c
41
main.go
41
main.go
@ -354,7 +354,7 @@ func getMeta(albumId string, token string, storefront string) (*structs.AutoGene
|
|||||||
|
|
||||||
func getSongLyrics(songId string, storefront string, token string, userToken string) (string, error) {
|
func getSongLyrics(songId string, storefront string, token string, userToken string) (string, error) {
|
||||||
req, err := http.NewRequest("GET",
|
req, err := http.NewRequest("GET",
|
||||||
fmt.Sprintf("https://amp-api.music.apple.com/v1/catalog/%s/songs/%s/%s", storefront, songId, Config.LrcType), nil)
|
fmt.Sprintf("https://amp-api.music.apple.com/v1/catalog/%s/songs/%s/%s?l=%s", storefront, songId, Config.LrcType, Config.Language), nil)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return "", err
|
return "", err
|
||||||
}
|
}
|
||||||
@ -1179,10 +1179,23 @@ func conventSyllableTTMLToLRC(ttml string) (string, error) {
|
|||||||
ms = ms / 10
|
ms = ms / 10
|
||||||
return fmt.Sprintf("[%02d:%02d.%02d]", m, s, ms), nil
|
return fmt.Sprintf("[%02d:%02d.%02d]", m, s, ms), nil
|
||||||
}
|
}
|
||||||
for _, div := range parsedTTML.FindElement("tt").FindElement("body").FindElements("div") {
|
divs := parsedTTML.FindElement("tt").FindElement("body").FindElements("div")
|
||||||
|
//get trans
|
||||||
|
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.FindElement("translations").FindElements("translation")) > 0 {
|
||||||
|
divs = iTunesMetadata.FindElement("translations").FindElements("translation")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
for _, div := range divs {
|
||||||
for _, item := range div.ChildElements() {
|
for _, item := range div.ChildElements() {
|
||||||
var lrcSyllables []string
|
var lrcSyllables []string
|
||||||
var i int = 0
|
var i int = 0
|
||||||
|
var endTime string
|
||||||
for _, lyrics := range item.Child {
|
for _, lyrics := range item.Child {
|
||||||
if _, ok := lyrics.(*etree.CharData); ok {
|
if _, ok := lyrics.(*etree.CharData); ok {
|
||||||
if i > 0 {
|
if i > 0 {
|
||||||
@ -1199,6 +1212,10 @@ func conventSyllableTTMLToLRC(ttml string) (string, error) {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return "", err
|
return "", err
|
||||||
}
|
}
|
||||||
|
endTime, err = parseTime(lyric.SelectAttr("end").Value)
|
||||||
|
if err != nil {
|
||||||
|
return "", err
|
||||||
|
}
|
||||||
var text string
|
var text string
|
||||||
if lyric.SelectAttr("text") == nil {
|
if lyric.SelectAttr("text") == nil {
|
||||||
var textTmp []string
|
var textTmp []string
|
||||||
@ -1216,10 +1233,10 @@ func conventSyllableTTMLToLRC(ttml string) (string, error) {
|
|||||||
lrcSyllables = append(lrcSyllables, fmt.Sprintf("%s%s", beginTime, text))
|
lrcSyllables = append(lrcSyllables, fmt.Sprintf("%s%s", beginTime, text))
|
||||||
i += 1
|
i += 1
|
||||||
}
|
}
|
||||||
endTime, err := parseTime(item.SelectAttr("end").Value)
|
//endTime, err := parseTime(item.SelectAttr("end").Value)
|
||||||
if err != nil {
|
//if err != nil {
|
||||||
return "", err
|
// return "", err
|
||||||
}
|
//}
|
||||||
lrcLines = append(lrcLines, strings.Join(lrcSyllables, "")+endTime)
|
lrcLines = append(lrcLines, strings.Join(lrcSyllables, "")+endTime)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1275,6 +1292,18 @@ func conventTTMLToLRC(ttml string) (string, error) {
|
|||||||
return "", err
|
return "", err
|
||||||
}
|
}
|
||||||
var text string
|
var text string
|
||||||
|
//GET trans
|
||||||
|
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.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
|
||||||
for _, span := range lyric.Child {
|
for _, span := range lyric.Child {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user