50 lines
1.2 KiB
Go
50 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("/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)
|
|
}
|