obs-replay-server/main.go

56 lines
1.3 KiB
Go
Raw Permalink Normal View History

2023-06-01 13:20:03 -03:00
package main
import (
2023-06-14 08:56:31 -03:00
"github.com/charmbracelet/log"
2023-06-01 13:20:03 -03:00
"github.com/labstack/echo/v4"
2023-06-14 08:56:31 -03:00
"github.com/labstack/echo/v4/middleware"
2023-06-01 13:20:03 -03:00
"github.com/radiden/obs-replay-server/handlers"
2023-06-14 08:56:31 -03:00
"github.com/radiden/obs-replay-server/services"
_ "embed"
_ "github.com/mattn/go-sqlite3"
2023-06-01 13:20:03 -03:00
)
2023-06-14 08:56:31 -03:00
//go:embed db/schema.sql
var initialSchema string
var sv *services.Services
2023-06-01 13:20:03 -03:00
func main() {
2023-06-14 08:56:31 -03:00
sv = services.InitServices(initialSchema)
handlers.InitHandlers(sv)
2023-06-01 13:20:03 -03:00
2023-06-14 08:56:31 -03:00
isRecording, err := sv.OBS.Outputs.GetReplayBufferStatus()
2023-06-01 13:20:03 -03:00
if err != nil {
2023-06-14 08:56:31 -03:00
log.Fatal("couldn't get replay buffer status", "error", err)
2023-06-01 13:20:03 -03:00
}
if !isRecording.OutputActive {
2023-06-14 08:56:31 -03:00
sv.OBS.Outputs.StartReplayBuffer()
2023-06-01 13:20:03 -03:00
}
2023-06-14 08:56:31 -03:00
// start echo
2023-06-01 13:20:03 -03:00
e := echo.New()
2023-06-14 08:56:31 -03:00
e.Use(middleware.RequestLoggerWithConfig(middleware.RequestLoggerConfig{
LogStatus: true,
LogURI: true,
LogError: true,
LogValuesFunc: func(c echo.Context, v middleware.RequestLoggerValues) error {
if err == nil {
log.Info("[request]", "uri", v.URI, "status", v.Status)
} else {
log.Error("[request]", "uri", v.URI, "status", v.Status, "err", v.Error)
}
return nil
},
}))
e.Debug = true
e.HideBanner = true
e.Static("/replays", "replays")
2023-06-01 13:20:03 -03:00
e.GET("/", handlers.IndexHandler)
2023-06-14 08:56:31 -03:00
e.POST("/auth", handlers.AuthHandler)
e.GET("/panel", handlers.PanelHandler)
e.GET("/save", handlers.SaveHandler)
e.Logger.Fatal(e.Start(":80"))
2023-06-01 13:20:03 -03:00
}