Wiper for Bastion
This commit is contained in:
parent
0aa26c1cfa
commit
c65dad7727
@ -8,6 +8,7 @@ import (
|
|||||||
"lab.pztrn.name/fat0troll/i2_bot/lib/dbmapping"
|
"lab.pztrn.name/fat0troll/i2_bot/lib/dbmapping"
|
||||||
"math/rand"
|
"math/rand"
|
||||||
"regexp"
|
"regexp"
|
||||||
|
"strconv"
|
||||||
)
|
)
|
||||||
|
|
||||||
func (r *Router) routeGroupRequest(update *tgbotapi.Update, playerRaw *dbmapping.Player, chatRaw *dbmapping.Chat) string {
|
func (r *Router) routeGroupRequest(update *tgbotapi.Update, playerRaw *dbmapping.Player, chatRaw *dbmapping.Chat) string {
|
||||||
@ -24,6 +25,11 @@ func (r *Router) routeGroupRequest(update *tgbotapi.Update, playerRaw *dbmapping
|
|||||||
return squadHandled
|
return squadHandled
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bastionChatID, _ := strconv.ParseInt(c.Cfg.SpecialChats.BastionID, 10, 64)
|
||||||
|
if update.Message.Chat.ID == bastionChatID {
|
||||||
|
c.Squader.FilterBastion(update)
|
||||||
|
}
|
||||||
|
|
||||||
// Welcomes
|
// Welcomes
|
||||||
if update.Message.NewChatMembers != nil {
|
if update.Message.NewChatMembers != nil {
|
||||||
newUsers := *update.Message.NewChatMembers
|
newUsers := *update.Message.NewChatMembers
|
||||||
|
@ -594,3 +594,29 @@ func (s *Squader) ProtectBastion(update *tgbotapi.Update, newUser *tgbotapi.User
|
|||||||
|
|
||||||
return "ok"
|
return "ok"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// FilterBastion kicks already joined user if he changed league
|
||||||
|
func (s *Squader) FilterBastion(update *tgbotapi.Update) string {
|
||||||
|
user := update.Message.From
|
||||||
|
chatRaw, ok := c.Chatter.GetOrCreateChat(update)
|
||||||
|
if !ok {
|
||||||
|
return "fail"
|
||||||
|
}
|
||||||
|
|
||||||
|
playerRaw, playerOK := c.Users.GetOrCreatePlayer(update.Message.From.ID)
|
||||||
|
if !playerOK {
|
||||||
|
s.kickUserFromSquadChat(user, &chatRaw)
|
||||||
|
return "fail"
|
||||||
|
}
|
||||||
|
_, profileOK := c.Users.GetProfile(playerRaw.ID)
|
||||||
|
if !profileOK {
|
||||||
|
s.kickUserFromSquadChat(user, &chatRaw)
|
||||||
|
return "fail"
|
||||||
|
}
|
||||||
|
if playerRaw.LeagueID != 1 {
|
||||||
|
s.kickUserFromSquadChat(user, &chatRaw)
|
||||||
|
return "fail"
|
||||||
|
}
|
||||||
|
|
||||||
|
return "ok"
|
||||||
|
}
|
||||||
|
@ -28,4 +28,5 @@ type SquaderInterface interface {
|
|||||||
|
|
||||||
ProcessMessage(update *tgbotapi.Update, chatRaw *dbmapping.Chat) string
|
ProcessMessage(update *tgbotapi.Update, chatRaw *dbmapping.Chat) string
|
||||||
ProtectBastion(update *tgbotapi.Update, newUser *tgbotapi.User) string
|
ProtectBastion(update *tgbotapi.Update, newUser *tgbotapi.User) string
|
||||||
|
FilterBastion(update *tgbotapi.Update) string
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user