Implement MovieManager connection

This commit is contained in:
daru
2022-06-29 00:43:55 +02:00
parent 2b12e63637
commit 022ff8d0f9
12 changed files with 253 additions and 56 deletions

39
huso.go
View File

@@ -1,6 +1,7 @@
package main
import (
"database/sql"
"flag"
"fmt"
"log"
@@ -11,6 +12,7 @@ import (
"time"
"github.com/allegro/bigcache/v3"
_ "github.com/go-sql-driver/mysql"
"github.com/gookit/color"
"github.com/xujiajun/nutsdb"
"golang.org/x/time/rate"
@@ -45,12 +47,16 @@ 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")
mmDbServer = flag.String("mmDbServer", "hanami.family:3306", "MovieManager db server")
mmDbUser = flag.String("mmDbUser", "yui", "MovieManager db user")
animeCache *bigcache.BigCache
seasoncache *bigcache.BigCache
userCache *bigcache.BigCache
searchCache *bigcache.BigCache
animeListCache *bigcache.BigCache
mmCache *bigcache.BigCache
db *nutsdb.DB
mmDb *sql.DB
jikanLimiter *rate.Limiter
logOut *RingBuf
buildTime string
@@ -66,7 +72,7 @@ func main() {
logOut = NewRingBuf(10101)
color.Notice.Printf("huso %s built on %s with %s\n", husoVersion, buildTime, runtime.Version())
logOut.WriteLine(fmt.Sprintf("🎉 huso %s built on %s with %s\n", husoVersion, buildTime, runtime.Version()))
logOut.WriteLine(fmt.Sprintf("🎉 huso %s built on %s with %s", husoVersion, buildTime, runtime.Version()))
jikanLimiter = rate.NewLimiter(rate.Every(time.Second), 1)
@@ -97,6 +103,11 @@ func main() {
log.Fatal(err)
}
defer animeListCache.Close()
mmCache, err = bigcache.NewBigCache(bigcache.DefaultConfig(time.Minute))
if err != nil {
log.Fatal(err)
}
defer mmCache.Close()
nutsOpt := nutsdb.DefaultOptions
nutsOpt.Dir = "nuts"
@@ -106,6 +117,32 @@ func main() {
}
defer db.Close()
color.Infoln("NutsDB connected")
logOut.WriteLine("🗃️ NutsDB connected")
conns, err := GetMmConnString()
if err != nil {
color.Errorln(err.Error())
} else {
mmDb, err = sql.Open("mysql", conns)
if err != nil || mmDb == nil {
color.Errorln(err.Error())
} else {
mmDb.SetConnMaxLifetime(time.Minute * 3)
mmDb.SetMaxOpenConns(10)
mmDb.SetMaxIdleConns(10)
defer mmDb.Close()
err = mmDb.Ping()
if err != nil {
color.Errorln(err.Error())
} else {
color.Infoln("MovieManager DB connected")
logOut.WriteLine("🗃️ MovieManager DB connected")
}
}
}
Arbeit()
LangeArbeit()