Files
miaosic/registry.go
2025-07-30 22:47:50 +08:00

52 lines
1.0 KiB
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 UnregisterProvider(name string) {
_, ok := _providers[name]
if ok {
delete(_providers, name)
}
}
func UnregisterAllProvider() {
_providers = make(map[string]MediaProvider)
}
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
}