Files
AynaLivePlayer/internal/controller/search.go
aynakeya fd872c1f5b update
2024-04-13 00:59:44 -07:00

35 lines
981 B
Go

package controller
import (
"AynaLivePlayer/core/events"
"AynaLivePlayer/core/model"
"AynaLivePlayer/global"
"AynaLivePlayer/pkg/event"
"github.com/AynaLivePlayer/miaosic"
)
func handleSearch() {
log := global.Logger.WithPrefix("Search")
global.EventManager.RegisterA(
events.SearchCmd, "internal.controller.search.handleSearchCmd", func(event *event.Event) {
data := event.Data.(events.SearchCmdEvent)
log.Infof("Search %s using %s", data.Keyword, data.Provider)
searchResult, err := miaosic.SearchByProvider(data.Provider, data.Keyword, 1, 10)
if err != nil {
log.Warnf("Search %s using %s failed: %s", data.Keyword, data.Provider, err)
return
}
medias := make([]model.Media, len(searchResult))
for i, v := range searchResult {
medias[i] = model.Media{
Info: v,
User: model.SystemUser,
}
}
global.EventManager.CallA(
events.SearchResultUpdate, events.SearchResultUpdateEvent{
Medias: medias,
})
})
}