YTSFlix_Go/cmd/main.go

51 lines
1.2 KiB
Go

package main
import (
"fmt"
"git.adphi.net/Adphi/ytsflix/handler"
"github.com/gorilla/mux"
"github.com/sirupsen/logrus"
"net/http"
"os"
"strings"
)
func main() {
var storagePath = "/tmp"
if os.Getenv("DATA_DIR") != "" {
storagePath = os.Getenv("DATA_DIR")
}
logrus.Infof("Using directory: %s", storagePath)
setupLogging()
h, err := handler.NewHandler(storagePath)
if err != nil {
logrus.Fatal(err)
}
defer h.Close()
r := mux.NewRouter()
r.HandleFunc("/", h.Home).Methods(http.MethodGet)
r.HandleFunc("/movies/{search}", h.Search).Methods(http.MethodGet)
r.HandleFunc("/movies/category/{category}", h.Category).Methods(http.MethodGet)
r.HandleFunc("/movie/{id}", h.Movie).Methods(http.MethodGet)
r.HandleFunc("/torrent/{id}", h.Torrents).Methods(http.MethodGet)
r.HandleFunc("/watch/{movie}", h.Serve).Methods(http.MethodGet)
r.HandleFunc("/subs/{movie}/{sub}", h.Sub).Methods(http.MethodGet)
if err := http.ListenAndServe(fmt.Sprintf(":%d", 8080), r); err != nil {
logrus.Fatal(err)
}
}
func setupLogging() {
level := os.Getenv("LOG_LEVEL")
l := logrus.ErrorLevel
for _, ll := range logrus.AllLevels {
if strings.ToLower(level) == ll.String() {
l = ll
break
}
}
logrus.SetLevel(l)
logrus.Infof("Setting LOG_LEVEL: %s", l)
}