This repository has been archived on 2023-08-30. You can view files and clone it, but cannot push or open issues or pull requests.
l9_stud_bot/main.go

80 lines
1.7 KiB
Go
Raw Normal View History

package main
import (
"log"
"os"
"git.l9labs.ru/anufriev.g.a/l9_stud_bot/modules/database"
tgbotapi "github.com/go-telegram-bot-api/telegram-bot-api/v5"
"github.com/joho/godotenv"
)
func main() {
if err := godotenv.Load(); err != nil {
log.Fatal("No .env file found")
}
engine := database.Connect(os.Getenv("MYSQL_USER"), os.Getenv("MYSQL_PASS"), os.Getenv("MYSQL_DB"))
bot, err := tgbotapi.NewBotAPI(os.Getenv("TELEGRAM_APITOKEN"))
if err != nil {
log.Fatal(err)
}
bot.Debug = true
log.Printf("Authorized on account %s", bot.Self.UserName)
u := tgbotapi.NewUpdate(0)
u.Timeout = 60
updates := bot.GetUpdatesChan(u)
for update := range updates {
if update.Message != nil {
log.Printf("[%s] %s", update.Message.From.UserName, update.Message.Text)
var users []database.TgUser
err := engine.Find(&users, &database.TgUser{TgId: update.Message.Chat.ID})
if err != nil {
log.Fatal(err)
}
var tg_user database.TgUser
if len(users) == 0 {
l9id := database.GenerateID(engine)
user := database.User{
L9Id: l9id,
}
tg_user = database.TgUser{
L9Id: l9id,
Name: update.Message.From.UserName,
TgId: update.Message.Chat.ID,
PosTag: "not_started",
}
_, err := engine.Insert(user, tg_user)
if err != nil {
log.Fatal(err)
}
} else {
tg_user = users[0]
}
if tg_user.PosTag == "not_started" {
tg_user.PosTag = "started"
_, err := engine.Update(tg_user)
if err != nil {
log.Fatal(err)
}
msg := tgbotapi.NewMessage(update.Message.Chat.ID, "Hello!")
bot.Send(msg)
} else {
msg := tgbotapi.NewMessage(update.Message.Chat.ID, "Oops!")
bot.Send(msg)
}
}
}
}