Move support of channel to helper with TDLib
Now we're discarding messages sent directly to us, except for messages from @fw_zookeeper.
This commit is contained in:
parent
7e96abd339
commit
401f962bd2
32
domains/battles/v1/announce.go
Normal file
32
domains/battles/v1/announce.go
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
// Fantasy World Zookeeper Bot
|
||||||
|
// Copyright (c) 2018 Vladimir "fat0troll" Hodakov
|
||||||
|
|
||||||
|
package battlesv1
|
||||||
|
|
||||||
|
import (
|
||||||
|
"gitlab.com/toby3d/telegram"
|
||||||
|
itelegram "lab.wtfteam.pro/fat0troll/fw_zookeeper/local/telegram"
|
||||||
|
"strings"
|
||||||
|
)
|
||||||
|
|
||||||
|
// AnnounceBattle posts battle announce to channel
|
||||||
|
func AnnounceBattle(update *telegram.Update) {
|
||||||
|
announcerID := 788961789
|
||||||
|
if update.Message.From.ID != announcerID {
|
||||||
|
log.Warn().Msgf("Someone trying to mimic announcer: user with ID %d and username %s", update.Message.From.ID, update.Message.From.Username)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
battleInformationArray := strings.Split(update.Message.Text, " ")
|
||||||
|
if len(battleInformationArray) != 2 {
|
||||||
|
log.Error().Msgf("Unexpected battle information format: got %d elements instead of 2", len(battleInformationArray))
|
||||||
|
return
|
||||||
|
}
|
||||||
|
battleType := battleInformationArray[0]
|
||||||
|
battleTag := battleInformationArray[1]
|
||||||
|
|
||||||
|
log.Debug().Msgf("Battle type «%s», battle tag %s", battleType, battleTag)
|
||||||
|
|
||||||
|
itelegram.RespondWithoutMarkdown(c.Config.Announces.ChannelID, battleType)
|
||||||
|
itelegram.RespondWithoutMarkdown(c.Config.Announces.ChannelID, battleTag)
|
||||||
|
}
|
@ -11,15 +11,33 @@ import (
|
|||||||
|
|
||||||
// ForwardCommand responds to fight request
|
// ForwardCommand responds to fight request
|
||||||
func ForwardCommand(update *telegram.Update) {
|
func ForwardCommand(update *telegram.Update) {
|
||||||
log.Info().Msg("Battle request received!")
|
message := ""
|
||||||
if update.Message.Chat.ID == c.Config.Announces.ChannelID {
|
if update.Message.From.ID != 788961789 {
|
||||||
log.Info().Msg("This battle is already posted")
|
message := "*Смотритель более не принимает прямые запросы*\n"
|
||||||
}
|
message += "Люди глупы и безрассудны. Им дали возможность позвать на помощь — но они пользуются ею, чтобы самоутвердиться. Довольно!\n"
|
||||||
message := update.Message.Text
|
message += "Зовите на помощь @fw\\_zookeeper, как живого человека — через кнопку «Позвать на помощь» в игре.\n"
|
||||||
if !strings.Contains(message, "join") {
|
message += "Доброй охоты!"
|
||||||
message = strings.Replace(message, "fight", "join_fight", 1)
|
itelegram.RespondWithMarkdown(update.Message.Chat.ID, message)
|
||||||
}
|
} else {
|
||||||
message = strings.Replace(message, "@FWorldBot ", "", 1)
|
switch {
|
||||||
|
case strings.HasPrefix(update.Message.Text, "Кабаны!"):
|
||||||
|
AnnounceBattle(update)
|
||||||
|
case strings.HasPrefix(update.Message.Text, "Огры!"):
|
||||||
|
AnnounceBattle(update)
|
||||||
|
case strings.HasPrefix(update.Message.Text, "Буйволы!"):
|
||||||
|
AnnounceBattle(update)
|
||||||
|
default:
|
||||||
|
log.Info().Msg("Battle request received!")
|
||||||
|
if update.Message.Chat.ID == c.Config.Announces.ChannelID {
|
||||||
|
log.Info().Msg("This battle is already posted")
|
||||||
|
}
|
||||||
|
message = update.Message.Text
|
||||||
|
if !strings.Contains(message, "join") {
|
||||||
|
message = strings.Replace(message, "fight", "join_fight", 1)
|
||||||
|
}
|
||||||
|
message = strings.Replace(message, "@FWorldBot ", "", 1)
|
||||||
|
|
||||||
itelegram.RespondWithoutMarkdown(c.Config.Announces.ChannelID, message)
|
itelegram.RespondWithoutMarkdown(c.Config.Announces.ChannelID, message)
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user