Фраги приходят в одно сообщение и добавляют цифру, если это тот же тип фрага. Сообщения не удаляются дольше, если недавно был сделан такой же фраг
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing

This commit is contained in:
smsteel
2021-06-24 17:56:49 +03:00
parent 70594a62d2
commit 90a86fc18b
5 changed files with 156 additions and 15 deletions

View File

@ -2,9 +2,10 @@ package main
import (
"context"
"github.com/sirupsen/logrus"
"os"
"github.com/sirupsen/logrus"
tgbotapi "github.com/go-telegram-bot-api/telegram-bot-api"
)
@ -19,6 +20,7 @@ const (
ctxKeyMessageCleaner
ctxKeyDataBase
ctxKeyPlayersBoard
ctxKeyFragMessages
)
func createLogger(debug bool) *logrus.Logger {
@ -42,7 +44,7 @@ func createLogger(debug bool) *logrus.Logger {
}
}
func createContext(config *Config, bot *tgbotapi.BotAPI, mc *messageCleaner, ch *commandHandler, db *dbLayer, pb *playersBoard) (context.Context, func()) {
func createContext(config *Config, bot *tgbotapi.BotAPI, mc *messageCleaner, ch *commandHandler, db *dbLayer, pb *playersBoard, fms *fragMessages) (context.Context, func()) {
ctx, cancelFunc := context.WithCancel(context.Background())
ctx = context.WithValue(ctx, ctxKeyLogger, createLogger(true))
@ -52,6 +54,7 @@ func createContext(config *Config, bot *tgbotapi.BotAPI, mc *messageCleaner, ch
ctx = context.WithValue(ctx, ctxKeyCommandHandler, ch)
ctx = context.WithValue(ctx, ctxKeyDataBase, db)
ctx = context.WithValue(ctx, ctxKeyPlayersBoard, pb)
ctx = context.WithValue(ctx, ctxKeyFragMessages, fms)
return ctx, cancelFunc
}
@ -118,3 +121,12 @@ func getDPlayersBoard(ctx context.Context) *playersBoard {
panic("Failed to get players board from ctx")
}
func getFragMessages(ctx context.Context) *fragMessages {
v := ctx.Value(ctxKeyFragMessages)
if fms, ok := v.(*fragMessages); ok {
return fms
}
panic("Failed to get frag messages from ctx")
}