package main import ( "flag" "log" "os" "os/signal" "runtime" "syscall" "time" "github.com/allegro/bigcache/v3" "github.com/gookit/color" "github.com/xujiajun/nutsdb" ) const ( husoVersion = "1.0" registerSecret = "綾波レイ" seasonApiJikan = "seasons/now" userApiJikan = "users/" userApiMal = "users/" malApiStatusP = "plan_to_watch" malApiStatusW = "watching" malApiStatusC = "completed" malApiStatusH = "on_hold" malApiStatusD = "dropped" ) var ( webServerPort = flag.Int("port", 4876, "Port used by internal webserver") malApiBaseUri = flag.String("malApiBaseUri", "https://api.myanimelist.net/v2/", "MyAnimeList 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") cache *bigcache.BigCache db *nutsdb.DB ) func main() { // lese Flaggen flag.Parse() // bleib bei uns sc := make(chan os.Signal, 1) signal.Notify(sc, syscall.SIGINT, syscall.SIGTERM, os.Interrupt) color.Notice.Printf("huso %s %s\n", husoVersion, runtime.Version()) // cache init var err error cache, err = bigcache.NewBigCache(bigcache.DefaultConfig(2 * time.Hour)) if err != nil { log.Fatal(err) } defer cache.Close() nutsOpt := nutsdb.DefaultOptions nutsOpt.Dir = "nuts" db, err = nutsdb.Open(nutsOpt) if err != nil { log.Fatal(err) } defer db.Close() initSeason() go Arbeiten() go RunWebserv() //list, _, _ := GetUserAnimeListData("ultrasn0w", malApiStatusW) //fmt.Printf("%+v\n", list) <-sc } func initSeason() { _, bytes, err := GetSeasonDataAll() if err != nil { color.Errorln(err.Error()) } err = cache.Set(seasonApiJikan, bytes) if err != nil { color.Errorln(err.Error()) } }