mirror of
https://github.com/ultrasn0w/huso.git
synced 2025-12-14 10:39: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")
|
jikanApiBaseUri = flag.String("jikanApiBaseUri", "https://api.jikan.moe/v4/", "Jikan API base URL")
|
||||||
malApiId = flag.String("malApiId", "cc17dcf40581b9dfc8a5a12dba458153", "MyAnimeList API Client ID")
|
malApiId = flag.String("malApiId", "cc17dcf40581b9dfc8a5a12dba458153", "MyAnimeList API Client ID")
|
||||||
localServer = flag.Bool("localServer", false, "Set varius headers for running locally")
|
localServer = flag.Bool("localServer", false, "Set varius headers for running locally")
|
||||||
cache *bigcache.BigCache
|
|
||||||
animeCache *bigcache.BigCache
|
animeCache *bigcache.BigCache
|
||||||
|
seasoncache *bigcache.BigCache
|
||||||
|
userCache *bigcache.BigCache
|
||||||
db *nutsdb.DB
|
db *nutsdb.DB
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -53,16 +54,21 @@ func main() {
|
|||||||
|
|
||||||
// cache init
|
// cache init
|
||||||
var err error
|
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))
|
animeCache, err = bigcache.NewBigCache(bigcache.DefaultConfig(6 * time.Hour))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatal(err)
|
log.Fatal(err)
|
||||||
}
|
}
|
||||||
defer animeCache.Close()
|
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 := nutsdb.DefaultOptions
|
||||||
nutsOpt.Dir = "nuts"
|
nutsOpt.Dir = "nuts"
|
||||||
@@ -89,7 +95,7 @@ func initSeason() {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
color.Errorln(err.Error())
|
color.Errorln(err.Error())
|
||||||
}
|
}
|
||||||
err = cache.Set(seasonApiJikan, bytes)
|
err = seasoncache.Set(seasonApiJikan, bytes)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
color.Errorln(err.Error())
|
color.Errorln(err.Error())
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -65,17 +65,16 @@ func GetUserData(username string) (*UserJikan, []byte, error) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func GetUserBytesCached(username string) ([]byte, error) {
|
func GetUserBytesCached(username string) ([]byte, error) {
|
||||||
key := userApiJikan + username
|
data, err := userCache.Get(username)
|
||||||
data, err := cache.Get(key)
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
data, err = GetDataJikan(key)
|
data, err = GetDataJikan(username)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return data, err
|
return data, err
|
||||||
}
|
}
|
||||||
if strings.Contains(string(data), "BadResponseException") {
|
if strings.Contains(string(data), "BadResponseException") {
|
||||||
return data, fmt.Errorf("user not found: %s", username)
|
return data, fmt.Errorf("user not found: %s", username)
|
||||||
}
|
}
|
||||||
cache.Set(key, data)
|
userCache.Set(username, data)
|
||||||
return data, err
|
return data, err
|
||||||
}
|
}
|
||||||
return data, err
|
return data, err
|
||||||
|
|||||||
3
ober.go
3
ober.go
@@ -17,6 +17,7 @@ func RunWebserv() {
|
|||||||
r.GET("/", Headers(Start))
|
r.GET("/", Headers(Start))
|
||||||
r.GET("/api/season", Headers(Season))
|
r.GET("/api/season", Headers(Season))
|
||||||
r.GET("/api/anime/{id}", Headers(AnimeGet))
|
r.GET("/api/anime/{id}", Headers(AnimeGet))
|
||||||
|
r.GET("/api/user/{id?}", Headers(AnimeGet))
|
||||||
r.GET("/api/watch/{user?}", Headers(WatchGet))
|
r.GET("/api/watch/{user?}", Headers(WatchGet))
|
||||||
r.POST("/api/register", Headers(Register))
|
r.POST("/api/register", Headers(Register))
|
||||||
r.POST("/api/watch/{user}", Headers(WatchPost))
|
r.POST("/api/watch/{user}", Headers(WatchPost))
|
||||||
@@ -39,7 +40,7 @@ func Start(ctx *fasthttp.RequestCtx) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func Season(ctx *fasthttp.RequestCtx) {
|
func Season(ctx *fasthttp.RequestCtx) {
|
||||||
data, err := cache.Get(seasonApiJikan)
|
data, err := seasoncache.Get(seasonApiJikan)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
addErrorToCtx(ctx, err)
|
addErrorToCtx(ctx, err)
|
||||||
return
|
return
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ func Arbeiten() {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
color.Errorln(err.Error())
|
color.Errorln(err.Error())
|
||||||
} else {
|
} else {
|
||||||
err = cache.Set(seasonApiJikan, bytes)
|
err = seasoncache.Set(seasonApiJikan, bytes)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
color.Errorln(err.Error())
|
color.Errorln(err.Error())
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -92,7 +92,7 @@ func MalConvert(mal *AnimeDetailMal) Anime {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func GetSeasonCache() ([]Anime, error) {
|
func GetSeasonCache() ([]Anime, error) {
|
||||||
data, err := cache.Get(seasonApiJikan)
|
data, err := seasoncache.Get(seasonApiJikan)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user