usercache

This commit is contained in:
daru
2022-04-17 19:11:28 +02:00
parent 75415f37b5
commit 4612cd1eb0
5 changed files with 20 additions and 14 deletions

20
huso.go
View File

@@ -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())
}

View File

@@ -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

View File

@@ -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

View File

@@ -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())
}

View File

@@ -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
}