Ctrl K
ComunidadGuías…

main.go

Rama master · réplica de lectura del repositorio original.

Archivo original ↗Preguntar a KiBot
package main

import (
	"net/http"
	"strconv"

	log "github.com/sirupsen/logrus"
	"go-subgen/pkg"
	"go-subgen/pkg/configuration"
	"go-subgen/web/webhooks"
)

func main() {
	conf, err := configuration.LoadConfig()
	if err != nil {
		log.Fatal(err)
	}

	log.SetLevel(conf.LogLevel)
	log.Printf("using model type %v for language %s", conf.ModelType, conf.TargetLang)

	log.Debugf("%+v", configuration.Cfg)
	downloaded, err := pkg.IsModelDownloaded(conf.ModelType)
	if err != nil {
		log.WithError(err).Errorln("Model check failed (this is likely normal and can be ignored)")
	}
	if !downloaded {
		err := pkg.DownloadModel(conf.ModelType)
		if err != nil {
			log.WithError(err).Fatalln("failed to download model")
		}
	}

	// Handle http healthcheck endpoint
	http.Handle("/healthcheck", http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
		w.WriteHeader(http.StatusOK)
		_, err := w.Write([]byte("OK"))
		if err != nil {
			log.Errorln(err)
		}
	}))

	http.Handle("/webhooks/tautulli", http.HandlerFunc(webhooks.ServeTautulli))
	http.Handle("/webhooks/generic", http.HandlerFunc(webhooks.ServeGeneric))
	http.Handle("/webhooks/radarr", http.HandlerFunc(webhooks.ServeRadarr))
	http.Handle("/webhooks/sonarr", http.HandlerFunc(webhooks.ServeSonarr))

	pkg.StartWorkers(conf)
	err = http.ListenAndServe(":"+strconv.Itoa(int(conf.Port)), nil)
	if err != nil {
		log.WithError(err).Fatal("web server failure")
	}

}