70 lines
1.7 KiB
Go
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)
|
|
}
|
|
}
|