deletedbot/main.go

53 lines
1.1 KiB
Go
Raw Normal View History

2021-07-18 21:23:12 +00:00
package main
import (
2024-10-28 16:57:26 +00:00
"database/sql"
2021-07-18 21:23:12 +00:00
"github.com/gin-contrib/cors"
"github.com/gin-gonic/gin"
2024-10-28 16:57:26 +00:00
_ "github.com/glebarez/go-sqlite"
2021-07-18 21:23:12 +00:00
"log"
)
type session struct {
2024-10-28 16:57:26 +00:00
*sql.DB
WebhookDomain string
Config config
2021-07-18 21:23:12 +00:00
}
func main() {
2024-10-28 16:57:26 +00:00
log.Println("Preparing DeletedBot...")
2021-07-18 21:23:12 +00:00
2024-10-28 16:57:26 +00:00
conf := getConfig()
2021-07-18 21:23:12 +00:00
2024-10-28 16:57:26 +00:00
db, err := sql.Open("sqlite", conf.DbPath)
2021-07-18 21:23:12 +00:00
if err != nil {
2024-10-28 16:57:26 +00:00
log.Fatal("Couldn't connect to database: ", err.Error())
2021-07-18 21:23:12 +00:00
}
2024-10-28 16:57:26 +00:00
defer db.Close()
2021-07-18 21:23:12 +00:00
2024-10-28 16:57:26 +00:00
ses := &session{DB: db, WebhookDomain: conf.WebhookDomain, Config: conf}
ses.initDatabase()
2021-07-18 21:23:12 +00:00
2024-10-28 16:57:26 +00:00
gin.SetMode(gin.ReleaseMode)
2021-07-18 21:23:12 +00:00
r := gin.Default()
r.Use(cors.Default())
2024-10-28 16:57:26 +00:00
conf.serveFrontend(r)
api := r.Group("/api")
api.POST("/setbot", ses.setBot)
api.POST("/telegram/:token", ses.telegram)
2021-07-18 21:23:12 +00:00
2024-10-28 16:57:26 +00:00
admin := api.Group("/admin", gin.BasicAuth(gin.Accounts{conf.AdminUsername: conf.AdminPassword}))
2021-07-18 21:23:12 +00:00
admin.POST("/getbots", ses.getBots)
admin.POST("/unsetbot", ses.unsetBot)
2024-10-28 16:57:26 +00:00
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())
}
2021-07-18 21:23:12 +00:00
}