search hacks

This commit is contained in:
daru
2022-07-26 22:44:43 +02:00
parent 7185544e03
commit 6a2e573828

View File

@@ -8,6 +8,7 @@ import (
"strconv" "strconv"
"strings" "strings"
"time" "time"
"unicode/utf8"
"github.com/gookit/color" "github.com/gookit/color"
"github.com/valyala/fasthttp" "github.com/valyala/fasthttp"
@@ -18,12 +19,21 @@ func SearchAnimeData(query string) ([]Anime, []byte, error) {
data, err := searchCache.Get(query) data, err := searchCache.Get(query)
if err != nil { if err != nil {
err = nil err = nil
animes = make([]Anime, 0)
parseId, err := strconv.ParseInt(query, 10, 64)
if err == nil && parseId > 0 {
anime, err := SearchAnime(parseId)
if err == nil {
animes = append(animes, *anime)
}
}
err = nil
if utf8.RuneCountInString(query) > 2 {
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") 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 { if err != nil {
return nil, nil, err return nil, nil, err
} }
var animeList AnimeListMal var animeList AnimeListMal
animes = make([]Anime, 0)
err = json.Unmarshal(dataMal, &animeList) err = json.Unmarshal(dataMal, &animeList)
if err != nil { if err != nil {
return nil, nil, err return nil, nil, err
@@ -32,6 +42,7 @@ func SearchAnimeData(query string) ([]Anime, []byte, error) {
for _, a := range animeList.Data { for _, a := range animeList.Data {
animes = append(animes, MalConvert(&a.Node)) animes = append(animes, MalConvert(&a.Node))
} }
}
data, err = json.Marshal(animes) data, err = json.Marshal(animes)
if err != nil { if err != nil {
return animes, data, err return animes, data, err