package main import ( "bot/src/controllers" "bot/src/models" "log" "os" "time" tele "gopkg.in/telebot.v4" ) var isTest bool = false func config() models.Config { return models.Config{ Token: os.Getenv("BOT_TOKEN"), HostName: os.Getenv("DB_HOST"), DbName: os.Getenv("DB_NAME"), UserName: os.Getenv("DB_USER"), Password: os.Getenv("DB_PASS"), } } func testConfig() models.Config { return models.Config{ Token: "8301440775:AAF7j6ENql93UXB5VwrOAg7k7W3JLjMbPcU", HostName: "quizer.space", DbName: "test", UserName: "root", Password: "12641264", } } func main() { var cfg models.Config if isTest { cfg = testConfig() } else { cfg = config() } pref := tele.Settings{ Token: cfg.Token, Poller: &tele.LongPoller{Timeout: 10 * time.Second}, } b, err := tele.NewBot(pref) if err != nil { log.Fatal(err) return } dc := controllers.NewDB(cfg) dickController := controllers.NewDick(dc) duelController := controllers.NewDuel(b, dc) bonusController := controllers.NewBonusController(b, dc) adminMessageController := controllers.NewAdminMessageController(b, dc) acceptButton := tele.Btn{Unique: controllers.AcceptDuelButtonUnique} b.Handle(&acceptButton, duelController.AcceptMatch) b.Handle("/dick", dickController.Dick) b.Handle("/top_dick", dickController.TopDick) b.Handle("/duel", duelController.StartMatch) b.Handle("/accept", duelController.AcceptMatch) b.Handle("/clear", duelController.ClearMatch) b.Handle("/b", bonusController.Bonus) b.Handle("/ms", adminMessageController.AdminMessage) b.Start() }