.refine artist fetch all tracks

This commit is contained in:
afkarxyz
2026-03-25 13:43:14 +07:00
parent dd67b54ea9
commit d8722c58dc
7 changed files with 279 additions and 61 deletions
+14 -14
View File
@@ -485,7 +485,7 @@ func extractDuration(ms float64) map[string]interface{} {
}
}
func FilterTrack(data map[string]interface{}, albumFetchData ...map[string]interface{}) map[string]interface{} {
func FilterTrack(data map[string]interface{}, separator string, albumFetchData ...map[string]interface{}) map[string]interface{} {
dataMap := getMap(data, "data")
trackData := getMap(dataMap, "trackUnion")
if len(trackData) == 0 {
@@ -665,7 +665,7 @@ func FilterTrack(data map[string]interface{}, albumFetchData ...map[string]inter
for _, artist := range albumArtists {
albumArtistNames = append(albumArtistNames, getString(artist, "name"))
}
albumArtistsString = strings.Join(albumArtistNames, GetSeparator())
albumArtistsString = strings.Join(albumArtistNames, separator)
}
if albumArtistsString == "" {
albumArtistsString = getString(albumUnionData, "artists")
@@ -681,7 +681,7 @@ func FilterTrack(data map[string]interface{}, albumFetchData ...map[string]inter
for _, artist := range albumArtists {
albumArtistNames = append(albumArtistNames, getString(artist, "name"))
}
albumArtistsString = strings.Join(albumArtistNames, GetSeparator())
albumArtistsString = strings.Join(albumArtistNames, separator)
}
}
@@ -715,7 +715,7 @@ func FilterTrack(data map[string]interface{}, albumFetchData ...map[string]inter
for _, artist := range artists {
artistNames = append(artistNames, getString(artist, "name"))
}
artistsString := strings.Join(artistNames, GetSeparator())
artistsString := strings.Join(artistNames, separator)
copyrightTexts := []string{}
for _, item := range copyrightInfo {
@@ -802,7 +802,7 @@ func FilterTrack(data map[string]interface{}, albumFetchData ...map[string]inter
return filtered
}
func FilterAlbum(data map[string]interface{}) map[string]interface{} {
func FilterAlbum(data map[string]interface{}, separator string) map[string]interface{} {
dataMap := getMap(data, "data")
albumData := getMap(dataMap, "albumUnion")
if len(albumData) == 0 {
@@ -814,7 +814,7 @@ func FilterAlbum(data map[string]interface{}) map[string]interface{} {
for _, artist := range artists {
artistNames = append(artistNames, getString(artist, "name"))
}
albumArtistsString := strings.Join(artistNames, GetSeparator())
albumArtistsString := strings.Join(artistNames, separator)
coverObj := extractCoverImage(getMap(albumData, "coverArt"))
var cover interface{}
@@ -875,7 +875,7 @@ func FilterAlbum(data map[string]interface{}) map[string]interface{} {
for _, artist := range trackArtists {
trackArtistNames = append(trackArtistNames, getString(artist, "name"))
}
trackArtistsString := strings.Join(trackArtistNames, GetSeparator())
trackArtistsString := strings.Join(trackArtistNames, separator)
trackURI := getString(track, "uri")
trackID := ""
@@ -943,7 +943,7 @@ func FilterAlbum(data map[string]interface{}) map[string]interface{} {
return filtered
}
func FilterPlaylist(data map[string]interface{}) map[string]interface{} {
func FilterPlaylist(data map[string]interface{}, separator string) map[string]interface{} {
dataMap := getMap(data, "data")
playlistData := getMap(dataMap, "playlistV2")
if len(playlistData) == 0 {
@@ -1075,7 +1075,7 @@ func FilterPlaylist(data map[string]interface{}) map[string]interface{} {
for _, artist := range trackArtists {
trackArtistNames = append(trackArtistNames, getString(artist, "name"))
}
artistsString := strings.Join(trackArtistNames, GetSeparator())
artistsString := strings.Join(trackArtistNames, separator)
trackDurationMs := getFloat64(getMap(trackData, "trackDuration"), "totalMilliseconds")
durationObj := extractDuration(trackDurationMs)
@@ -1121,7 +1121,7 @@ func FilterPlaylist(data map[string]interface{}) map[string]interface{} {
for _, artist := range albumArtists {
albumArtistNames = append(albumArtistNames, getString(artist, "name"))
}
albumArtistsString = strings.Join(albumArtistNames, GetSeparator())
albumArtistsString = strings.Join(albumArtistNames, separator)
}
}
@@ -1295,7 +1295,7 @@ func stripHTMLTags(s string) string {
return re.ReplaceAllString(s, "")
}
func FilterArtist(data map[string]interface{}) map[string]interface{} {
func FilterArtist(data map[string]interface{}, separator string) map[string]interface{} {
dataMap := getMap(data, "data")
artistData := getMap(dataMap, "artistUnion")
if len(artistData) == 0 {
@@ -1424,7 +1424,7 @@ func FilterArtist(data map[string]interface{}) map[string]interface{} {
return filtered
}
func FilterSearch(data map[string]interface{}) map[string]interface{} {
func FilterSearch(data map[string]interface{}, separator string) map[string]interface{} {
dataMap := getMap(data, "data")
searchData := getMap(dataMap, "searchV2")
if len(searchData) == 0 {
@@ -1514,7 +1514,7 @@ func FilterSearch(data map[string]interface{}) map[string]interface{} {
for _, artist := range trackArtists {
trackArtistNames = append(trackArtistNames, getString(artist, "name"))
}
trackArtistsString := strings.Join(trackArtistNames, GetSeparator())
trackArtistsString := strings.Join(trackArtistNames, separator)
durationString := getString(trackDuration, "formatted")
@@ -1586,7 +1586,7 @@ func FilterSearch(data map[string]interface{}) map[string]interface{} {
for _, artist := range albumArtists {
albumArtistNames = append(albumArtistNames, getString(artist, "name"))
}
albumArtistsString := strings.Join(albumArtistNames, GetSeparator())
albumArtistsString := strings.Join(albumArtistNames, separator)
dateInfo := getMap(album, "date")
var year interface{}