Files
miaosic/providers/providers.go
aynakeya caec88b461 init
2023-09-01 18:51:31 -07:00

54 lines
1.4 KiB
Go

package providers
import (
"github.com/aynakeya/deepcolor/dphttp"
"miaosic"
)
type DeepcolorProvider struct {
InfoFunc dphttp.ApiFunc[*miaosic.Media, *miaosic.Media]
FileFunc dphttp.ApiFunc[*miaosic.Media, *miaosic.Media]
LyricFunc dphttp.ApiFunc[*miaosic.Media, *miaosic.Media]
PlaylistFunc dphttp.ApiFunc[*miaosic.Playlist, *miaosic.Playlist]
SearchFunc dphttp.ApiFuncResult[string, []*miaosic.Media]
}
func (d *DeepcolorProvider) UpdatePlaylist(playlist *miaosic.Playlist) error {
if d.PlaylistFunc == nil {
return miaosic.ErrNotImplemented
}
return d.PlaylistFunc(playlist, playlist)
}
func (d *DeepcolorProvider) Search(keyword string) ([]*miaosic.Media, error) {
if d.SearchFunc == nil {
return nil, miaosic.ErrNotImplemented
}
//result := make([]*miaosic.Media, 0)
//err :=
//fmt.Println(result)
return d.SearchFunc(keyword)
}
func (d *DeepcolorProvider) UpdateMedia(media *miaosic.Media) error {
if d.InfoFunc == nil {
return miaosic.ErrNotImplemented
}
return d.InfoFunc(media, media)
}
func (d DeepcolorProvider) UpdateMediaUrl(media *miaosic.Media) error {
if d.FileFunc == nil {
return miaosic.ErrNotImplemented
}
return d.FileFunc(media, media)
}
func (d DeepcolorProvider) UpdateMediaLyric(media *miaosic.Media) error {
if d.LyricFunc == nil {
// if no lyric func, return nil
return nil
}
return d.LyricFunc(media, media)
}