74 lines
1.4 KiB
Go
74 lines
1.4 KiB
Go
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)
|
|
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.Start()
|
|
}
|