deletedbot/main.go
2024-10-28 17:57:26 +01:00

53 lines
1.1 KiB
Go

package main
import (
"database/sql"
"github.com/gin-contrib/cors"
"github.com/gin-gonic/gin"
_ "github.com/glebarez/go-sqlite"
"log"
)
type session struct {
*sql.DB
WebhookDomain string
Config config
}
func main() {
log.Println("Preparing DeletedBot...")
conf := getConfig()
db, err := sql.Open("sqlite", conf.DbPath)
if err != nil {
log.Fatal("Couldn't connect to database: ", err.Error())
}
defer db.Close()
ses := &session{DB: db, WebhookDomain: conf.WebhookDomain, Config: conf}
ses.initDatabase()
gin.SetMode(gin.ReleaseMode)
r := gin.Default()
r.Use(cors.Default())
conf.serveFrontend(r)
api := r.Group("/api")
api.POST("/setbot", ses.setBot)
api.POST("/telegram/:token", ses.telegram)
admin := api.Group("/admin", gin.BasicAuth(gin.Accounts{conf.AdminUsername: conf.AdminPassword}))
admin.POST("/getbots", ses.getBots)
admin.POST("/unsetbot", ses.unsetBot)
log.Println("Starting to serve on " + conf.Host + ":" + conf.Port)
err = r.Run(conf.Host + ":" + conf.Port)
if err != nil {
log.Fatal("Couldn't start server: ", err.Error())
}
}