GET animesearch

This commit is contained in:
daru
2022-04-18 01:22:18 +02:00
parent 85decb819a
commit b0a68b017e
4 changed files with 62 additions and 16 deletions

View File

@@ -12,6 +12,36 @@ import (
"github.com/valyala/fasthttp"
)
func SearchAnime(query string) ([]Anime, []byte, error) {
var animes []Anime
data, err := searchCache.Get(query)
if err != nil {
err = nil
dataMal, err := GetDataMal(searchApiMal + query + "&fields=id,title,main_picture,alternative_titles,start_date,end_date,synopsis,mean,rank,popularity,num_list_users,num_scoring_users,nsfw,media_type,status,genres,my_list_status,num_episodes,start_season,broadcast,source,average_episode_duration,rating,studios&limit=100")
if err != nil {
return nil, nil, err
}
var animeList AnimeListMal
animes = make([]Anime, 0)
err = json.Unmarshal(dataMal, &animeList)
if err != nil {
return nil, nil, err
}
// convert to anime
for _, a := range animeList.Data {
animes = append(animes, MalConvert(&a.Node))
}
data, err = json.Marshal(animes)
if err != nil {
return animes, data, err
}
searchCache.Set(query, data)
} else {
err = json.Unmarshal(data, &animes)
}
return animes, data, err
}
func GetAnimeDetailData(animeId int64) (*Anime, []byte, error) {
var anime Anime
key := strconv.FormatInt(animeId, 10)