implemented fetch call

This commit is contained in:
Hazel Noack
2025-10-08 14:05:16 +02:00
parent 9c7dfd5775
commit 6ce1eb5f92
2 changed files with 63 additions and 5 deletions

View File

@@ -147,6 +147,41 @@ func Fetch(source data.Source) (data.MusicObject, error) {
return nil, nil
}
func FetchList(source data.Source) ([]data.MusicObject, error) {
res := []data.MusicObject{}
musicObject, err := Fetch(source)
if err != nil {
return res, err
}
if a, ok := musicObject.(data.Song); ok {
for _, ar := range a.Artists {
res = append(res, ar)
}
if a.Album.Name != "" {
res = append(res, a.Album, a)
}
} else if a, ok := musicObject.(data.Album); ok {
for _, ar := range a.Artists {
res = append(res, ar)
}
res = append(res, a)
for _, s := range a.Songs {
res = append(res, s)
}
} else if a, ok := musicObject.(data.Artist); ok {
res = append(res, a)
for _, al := range a.Albums {
res = append(res, al)
}
} else {
res = append(res, musicObject)
}
return res, nil
}
type SearchConfig struct {
IgnoreErrors bool
}