bloaterbot/bot.go
2023-03-05 04:20:17 +01:00

70 lines
1.7 KiB
Go

package main
import (
tgbotapi "github.com/go-telegram-bot-api/telegram-bot-api/v5"
"log"
"regexp"
"strings"
"time"
"watn3y/bloaterbotv3/botIO"
"watn3y/bloaterbotv3/commonlogic"
"watn3y/bloaterbotv3/config"
"watn3y/bloaterbotv3/text/nhentai"
)
var shutuptime time.Time
func bot() {
updates, bot := botIO.Authenticate()
for update := range updates {
if update.Message == nil {
continue
}
if update.Message.IsCommand() {
go commands(update, bot)
} else {
if time.Since(shutuptime).Minutes() >= 60 {
go textMatcher(update, bot)
}
}
}
}
func textMatcher(update tgbotapi.Update, bot *tgbotapi.BotAPI) {
//nhentai
const nhentaiRegex string = "([ \\t\\n\\r]|^)\\d{2,}([ \\t\\n\\r]|$)"
isNhentai, err := regexp.MatchString(nhentaiRegex, update.Message.Text)
if err != nil {
log.Panicf("Failed to compile regex for nhentai", err)
}
if isNhentai && commonlogic.ContainsInt64(config.BotConfig.Nhentai.EnabledChats, update.Message.Chat.ID) {
go nhentai.Nhentai(nhentaiRegex, update, bot)
}
//balonlyl
var isBalonlyl bool = false
for _, word := range config.BotConfig.Balonlyl.TriggerWords {
if strings.Contains(strings.ToLower(update.Message.Text), word) && commonlogic.ContainsInt64(config.BotConfig.Balonlyl.EnabledChats, update.Message.Chat.ID) {
isBalonlyl = true
break
}
}
if isBalonlyl {
go balonlyl(update, bot)
}
}
func commands(update tgbotapi.Update, bot *tgbotapi.BotAPI) {
if strings.ToLower(update.Message.Command()) == "shutup" || strings.ToLower(update.Message.Command()) == "shut" {
shutuptime = time.Now().UTC()
msg := tgbotapi.NewMessage(update.Message.Chat.ID, "Shutting up")
botIO.SendMessage(msg, bot)
}
}