mirror of
https://github.com/ultrasn0w/huso.git
synced 2025-12-13 17:29:54 +01:00
68 lines
1.3 KiB
Go
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())
|
|
}
|
|
}
|