implemented fetch call
This commit is contained in:
@@ -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
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user