mirror of
https://github.com/ultrasn0w/huso.git
synced 2025-12-13 13:59:53 +01:00
usercache
This commit is contained in:
20
huso.go
20
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())
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
3
ober.go
3
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
|
||||
|
||||
@@ -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())
|
||||
}
|
||||
|
||||
@@ -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
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user