fixed anime not found error when torrent sites are faster than anilist API in adding new animes

This commit is contained in:
milarin 2023-03-03 09:52:42 +01:00
parent da15313c21
commit 93bc926c34

View File

@ -5,7 +5,6 @@ import (
"git.milar.in/milarin/anilist" "git.milar.in/milarin/anilist"
"git.milar.in/milarin/channel" "git.milar.in/milarin/channel"
"git.milar.in/nyaanime/model"
) )
func GetAnimeListByAnimeID(statuses []anilist.MediaListStatus) (map[anilist.MediaID]*anilist.MediaList, error) { func GetAnimeListByAnimeID(statuses []anilist.MediaListStatus) (map[anilist.MediaID]*anilist.MediaList, error) {
@ -40,15 +39,19 @@ func GetCurrentlyWatchingAnimesContext(ctx context.Context, statuses ...anilist.
} }
var ( var (
animeByTitleCache = map[string]model.Pair[*anilist.Media, error]{} animeByTitleCache = map[string]*anilist.Media{}
) )
func SearchAnimeByTitle(title string) (anime *anilist.Media, err error) { func SearchAnimeByTitle(title string) (anime *anilist.Media, err error) {
// caching // caching
if cacheEntry, ok := animeByTitleCache[title]; ok { if cacheEntry, ok := animeByTitleCache[title]; ok {
return cacheEntry.First, cacheEntry.Second return cacheEntry, nil
} }
defer func() { animeByTitleCache[title] = model.Pair[*anilist.Media, error]{First: anime, Second: err} }() defer func() {
if err != nil && anime != nil {
animeByTitleCache[title] = anime
}
}()
token, err := GetAnilistAccessToken() token, err := GetAnilistAccessToken()
if err != nil { if err != nil {