From 4612cd1eb0d94950f5f2e36650c8c92831e26a35 Mon Sep 17 00:00:00 2001 From: daru Date: Sun, 17 Apr 2022 19:11:28 +0200 Subject: [PATCH] usercache --- huso.go | 20 +++++++++++++------- knecht.go | 7 +++---- ober.go | 3 ++- praktikant.go | 2 +- schaffer.go | 2 +- 5 files changed, 20 insertions(+), 14 deletions(-) diff --git a/huso.go b/huso.go index 8b8597c..a5fb4ba 100644 --- a/huso.go +++ b/huso.go @@ -37,8 +37,9 @@ var ( jikanApiBaseUri = flag.String("jikanApiBaseUri", "https://api.jikan.moe/v4/", "Jikan API base URL") malApiId = flag.String("malApiId", "cc17dcf40581b9dfc8a5a12dba458153", "MyAnimeList API Client ID") localServer = flag.Bool("localServer", false, "Set varius headers for running locally") - cache *bigcache.BigCache animeCache *bigcache.BigCache + seasoncache *bigcache.BigCache + userCache *bigcache.BigCache db *nutsdb.DB ) @@ -53,16 +54,21 @@ func main() { // cache init var err error - cache, err = bigcache.NewBigCache(bigcache.DefaultConfig(2 * time.Hour)) - if err != nil { - log.Fatal(err) - } - defer cache.Close() animeCache, err = bigcache.NewBigCache(bigcache.DefaultConfig(6 * time.Hour)) if err != nil { log.Fatal(err) } defer animeCache.Close() + seasoncache, err = bigcache.NewBigCache(bigcache.DefaultConfig(2 * time.Hour)) + if err != nil { + log.Fatal(err) + } + defer seasoncache.Close() + userCache, err = bigcache.NewBigCache(bigcache.DefaultConfig(4 * time.Hour)) + if err != nil { + log.Fatal(err) + } + defer userCache.Close() nutsOpt := nutsdb.DefaultOptions nutsOpt.Dir = "nuts" @@ -89,7 +95,7 @@ func initSeason() { if err != nil { color.Errorln(err.Error()) } - err = cache.Set(seasonApiJikan, bytes) + err = seasoncache.Set(seasonApiJikan, bytes) if err != nil { color.Errorln(err.Error()) } diff --git a/knecht.go b/knecht.go index b32c1d2..fe59444 100644 --- a/knecht.go +++ b/knecht.go @@ -65,17 +65,16 @@ func GetUserData(username string) (*UserJikan, []byte, error) { } func GetUserBytesCached(username string) ([]byte, error) { - key := userApiJikan + username - data, err := cache.Get(key) + data, err := userCache.Get(username) if err != nil { - data, err = GetDataJikan(key) + data, err = GetDataJikan(username) if err != nil { return data, err } if strings.Contains(string(data), "BadResponseException") { return data, fmt.Errorf("user not found: %s", username) } - cache.Set(key, data) + userCache.Set(username, data) return data, err } return data, err diff --git a/ober.go b/ober.go index 4645cfa..98912fc 100644 --- a/ober.go +++ b/ober.go @@ -17,6 +17,7 @@ func RunWebserv() { r.GET("/", Headers(Start)) r.GET("/api/season", Headers(Season)) r.GET("/api/anime/{id}", Headers(AnimeGet)) + r.GET("/api/user/{id?}", Headers(AnimeGet)) r.GET("/api/watch/{user?}", Headers(WatchGet)) r.POST("/api/register", Headers(Register)) r.POST("/api/watch/{user}", Headers(WatchPost)) @@ -39,7 +40,7 @@ func Start(ctx *fasthttp.RequestCtx) { } func Season(ctx *fasthttp.RequestCtx) { - data, err := cache.Get(seasonApiJikan) + data, err := seasoncache.Get(seasonApiJikan) if err != nil { addErrorToCtx(ctx, err) return diff --git a/praktikant.go b/praktikant.go index 10bbc61..f80f88d 100644 --- a/praktikant.go +++ b/praktikant.go @@ -13,7 +13,7 @@ func Arbeiten() { if err != nil { color.Errorln(err.Error()) } else { - err = cache.Set(seasonApiJikan, bytes) + err = seasoncache.Set(seasonApiJikan, bytes) if err != nil { color.Errorln(err.Error()) } diff --git a/schaffer.go b/schaffer.go index 26302a0..95c9277 100644 --- a/schaffer.go +++ b/schaffer.go @@ -92,7 +92,7 @@ func MalConvert(mal *AnimeDetailMal) Anime { } func GetSeasonCache() ([]Anime, error) { - data, err := cache.Get(seasonApiJikan) + data, err := seasoncache.Get(seasonApiJikan) if err != nil { return nil, err }