telegram-ollama-reply-bot/bot/middleware.go

51 lines
1.2 KiB
Go
Raw Normal View History

2024-03-11 20:15:27 +00:00
package bot
import (
"github.com/mymmrac/telego"
"github.com/mymmrac/telego/telegohandler"
"log/slog"
2024-03-11 20:15:27 +00:00
)
func (b *Bot) chatTypeStatsCounter(bot *telego.Bot, update telego.Update, next telegohandler.Handler) {
message := update.Message
if message == nil {
slog.Info("stats-middleware: update has no message. skipping.")
2024-03-11 20:15:27 +00:00
next(bot, update)
return
2024-03-11 20:15:27 +00:00
}
switch message.Chat.Type {
case telego.ChatTypeGroup, telego.ChatTypeSupergroup:
if b.isMentionOfMe(update) || b.isReplyToMe(update) {
slog.Info("stats-middleware: counting message chat type in stats", "type", message.Chat.Type)
b.stats.GroupRequest()
}
2024-03-11 20:15:27 +00:00
case telego.ChatTypePrivate:
slog.Info("stats-middleware: counting message chat type in stats", "type", message.Chat.Type)
2024-03-11 20:15:27 +00:00
b.stats.PrivateRequest()
}
next(bot, update)
}
func (b *Bot) chatHistory(bot *telego.Bot, update telego.Update, next telegohandler.Handler) {
message := update.Message
if message == nil {
slog.Info("chat-history-middleware: update has no message. skipping.")
next(bot, update)
return
}
slog.Info("chat-history-middleware: saving message to history for", "chat_id", message.Chat.ID)
b.saveChatMessageToHistory(message)
next(bot, update)
}