mirror of
https://github.com/AynaLivePlayer/miaosic.git
synced 2025-12-06 21:12:49 +08:00
41 lines
886 B
Go
41 lines
886 B
Go
package miaosic
|
|
|
|
import (
|
|
"github.com/aynakeya/deepcolor"
|
|
"github.com/aynakeya/deepcolor/dphttp"
|
|
"sort"
|
|
)
|
|
|
|
var Requester dphttp.IRequester = deepcolor.NewRestyRequester()
|
|
|
|
func init() {
|
|
Requester.Config().Timeout = 3
|
|
deepcolor.SetDefaultRequester(Requester)
|
|
}
|
|
|
|
var _providers map[string]MediaProvider = make(map[string]MediaProvider)
|
|
|
|
func RegisterProvider(provider MediaProvider) {
|
|
if _, ok := _providers[provider.GetName()]; ok {
|
|
panic("provider " + provider.GetName() + " already exists")
|
|
return
|
|
}
|
|
_providers[provider.GetName()] = provider
|
|
}
|
|
|
|
func GetProvider(name string) (MediaProvider, bool) {
|
|
provider, ok := _providers[name]
|
|
return provider, ok
|
|
}
|
|
|
|
func ListAvailableProviders() []string {
|
|
var names []string
|
|
for name := range _providers {
|
|
names = append(names, name)
|
|
}
|
|
sort.Slice(names, func(i, j int) bool {
|
|
return names[i] < names[j]
|
|
})
|
|
return names
|
|
}
|