Files
huso/huso.go
2022-04-13 19:11:14 +02:00

68 lines
1.3 KiB
Go

package main
import (
"flag"
"log"
"os"
"os/signal"
"runtime"
"syscall"
"time"
"github.com/allegro/bigcache/v3"
"github.com/gookit/color"
)
const (
husoVersion = "1.0"
seasonApiJikan = "seasons/now"
seasonApiMal = "anime/season/"
)
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
)
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()
initSeason()
go Arbeiten()
go RunWebserv()
//fmt.Printf("%+v\n", jik)
<-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())
}
}