Archived
1

Add return constants package, and common message sender functions

Trying to resolve as much as possible ``gometalinter`` issues.
This commit is contained in:
2018-03-31 16:45:09 +04:00
parent 049fdd7235
commit 4abfc457ce
29 changed files with 355 additions and 358 deletions

View File

@@ -4,12 +4,13 @@
package router
import (
"github.com/go-telegram-bot-api/telegram-bot-api"
"regexp"
"github.com/go-telegram-bot-api/telegram-bot-api"
)
// RouteCallback routes inline requests to bot
func (r *Router) RouteCallback(update *tgbotapi.Update) string {
func (r *Router) RouteCallback(update tgbotapi.Update) string {
playerRaw, err := c.DataCache.GetOrCreatePlayerByTelegramID(update.CallbackQuery.From.ID)
if err != nil {
c.Log.Error(err.Error())
@@ -17,7 +18,7 @@ func (r *Router) RouteCallback(update *tgbotapi.Update) string {
}
if playerRaw.Status == "banned" {
return c.Talkers.BanError(update)
return c.Talkers.BanError(&update)
}
var enableAlarmCallback = regexp.MustCompile("enable_reminder_(\\d+)\\z")
@@ -25,9 +26,9 @@ func (r *Router) RouteCallback(update *tgbotapi.Update) string {
switch {
case enableAlarmCallback.MatchString(update.CallbackQuery.Data):
return c.Reminder.CreateAlarmSetting(update, playerRaw)
return c.Reminder.CreateAlarmSetting(&update, playerRaw)
case disableAlarmCallback.MatchString(update.CallbackQuery.Data):
return c.Reminder.DestroyAlarmSetting(update, playerRaw)
return c.Reminder.DestroyAlarmSetting(&update, playerRaw)
}
return "ok"

View File

@@ -4,13 +4,14 @@
package router
import (
"github.com/go-telegram-bot-api/telegram-bot-api"
"math/rand"
"regexp"
"github.com/go-telegram-bot-api/telegram-bot-api"
"source.wtfteam.pro/i2_bot/i2_bot/lib/dbmapping"
)
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 {
text := update.Message.Text
// Regular expressions
var durakMsg = regexp.MustCompile("(Д|д)(У|у)(Р|р)(А|а|Е|е|О|о)")
@@ -19,7 +20,7 @@ func (r *Router) routeGroupRequest(update *tgbotapi.Update, playerRaw *dbmapping
var ebMsg = regexp.MustCompile("(\\s|^|ЗА|За|зА|за)(Е|е|Ё|ё)(Б|б)(\\s|Л|л|А|а|Т|т|У|у|Е|е|Ё|ё|И|и)")
var piMsg = regexp.MustCompile("(П|п)(И|и)(З|з)(Д|д)")
restrictionStatus := c.Chatter.ProtectChat(update, playerRaw, chatRaw)
restrictionStatus := c.Chatter.ProtectChat(&update, playerRaw, chatRaw)
if restrictionStatus != "protection_passed" {
return restrictionStatus
}
@@ -28,7 +29,7 @@ func (r *Router) routeGroupRequest(update *tgbotapi.Update, playerRaw *dbmapping
if update.Message.NewChatMembers != nil {
newUsers := *update.Message.NewChatMembers
if len(newUsers) > 0 {
return c.Welcomer.GroupWelcomeMessage(update)
return c.Welcomer.GroupWelcomeMessage(&update)
}
}
// New chat names
@@ -47,21 +48,21 @@ func (r *Router) routeGroupRequest(update *tgbotapi.Update, playerRaw *dbmapping
if trigger == 4 {
switch {
case huMsg.MatchString(text):
return c.Talkers.MatMessage(update)
return c.Talkers.MatMessage(&update)
case blMsg.MatchString(text):
return c.Talkers.MatMessage(update)
return c.Talkers.MatMessage(&update)
case ebMsg.MatchString(text):
return c.Talkers.MatMessage(update)
return c.Talkers.MatMessage(&update)
case piMsg.MatchString(text):
return c.Talkers.MatMessage(update)
return c.Talkers.MatMessage(&update)
case durakMsg.MatchString(text):
return c.Talkers.DurakMessage(update)
return c.Talkers.DurakMessage(&update)
}
}
switch {
case update.Message.Command() == "long":
return c.Talkers.LongMessage(update)
return c.Talkers.LongMessage(&update)
}
// Ah, we're still here

View File

@@ -4,13 +4,14 @@
package router
import (
"github.com/go-telegram-bot-api/telegram-bot-api"
"strconv"
"strings"
"github.com/go-telegram-bot-api/telegram-bot-api"
)
// RouteInline routes inline requests to bot
func (r *Router) RouteInline(update *tgbotapi.Update) string {
func (r *Router) RouteInline(update tgbotapi.Update) string {
playerRaw, err := c.DataCache.GetOrCreatePlayerByTelegramID(update.InlineQuery.From.ID)
if err != nil {
c.Log.Error(err.Error())

View File

@@ -4,12 +4,13 @@
package router
import (
"github.com/go-telegram-bot-api/telegram-bot-api"
"regexp"
"github.com/go-telegram-bot-api/telegram-bot-api"
"source.wtfteam.pro/i2_bot/i2_bot/lib/dbmapping"
)
func (r *Router) routePrivateRequest(update *tgbotapi.Update, playerRaw *dbmapping.Player, chatRaw *dbmapping.Chat) string {
func (r *Router) routePrivateRequest(update tgbotapi.Update, playerRaw *dbmapping.Player, chatRaw *dbmapping.Chat) string {
text := update.Message.Text
// Commands with regexps
@@ -21,7 +22,7 @@ func (r *Router) routePrivateRequest(update *tgbotapi.Update, playerRaw *dbmappi
var orderSendMsg = regexp.MustCompile("/send_order(\\d+)\\z")
if playerRaw.Status == "banned" {
return c.Talkers.BanError(update)
return c.Talkers.BanError(&update)
}
if update.Message.ForwardFrom != nil {
@@ -30,9 +31,9 @@ func (r *Router) routePrivateRequest(update *tgbotapi.Update, playerRaw *dbmappi
} else {
c.Log.Info("Forward from PokememBro bot! Processing...")
if playerRaw.ID != 0 {
c.Forwarder.ProcessForward(update, playerRaw)
c.Forwarder.ProcessForward(&update, playerRaw)
} else {
return c.Talkers.AnyMessageUnauthorized(update)
return c.Talkers.AnyMessageUnauthorized(&update)
}
}
} else {
@@ -41,181 +42,174 @@ func (r *Router) routePrivateRequest(update *tgbotapi.Update, playerRaw *dbmappi
case update.Message.Command() == "start":
if playerRaw.LeagueID != 0 {
if playerRaw.Status == "special" {
c.Welcomer.PrivateWelcomeMessageSpecial(update, playerRaw)
c.Welcomer.PrivateWelcomeMessageSpecial(&update, playerRaw)
return "ok"
}
c.Welcomer.PrivateWelcomeMessageAuthorized(update, playerRaw)
c.Welcomer.PrivateWelcomeMessageAuthorized(&update, playerRaw)
return "ok"
}
c.Welcomer.PrivateWelcomeMessageUnauthorized(update)
c.Welcomer.PrivateWelcomeMessageUnauthorized(&update)
return "ok"
case update.Message.Command() == "help":
c.Talkers.HelpMessage(update, playerRaw)
c.Talkers.HelpMessage(&update, playerRaw)
return "ok"
case update.Message.Command() == "faq":
return c.Talkers.FAQMessage(update)
return c.Talkers.FAQMessage(&update)
case update.Message.Command() == "academy":
c.Talkers.AcademyMessage(update, playerRaw)
c.Talkers.AcademyMessage(&update, playerRaw)
return "ok"
case update.Message.Command() == "bastion":
c.Talkers.BastionMessage(update, playerRaw)
c.Talkers.BastionMessage(&update, playerRaw)
return "ok"
case pokedexMsg.MatchString(text):
c.Pokedexer.PokememesList(update)
c.Pokedexer.PokememesList(&update)
return "ok"
case pokememeInfoMsg.MatchString(text):
c.Pokedexer.PokememeInfo(update, playerRaw)
c.Pokedexer.PokememeInfo(&update, playerRaw)
return "ok"
case update.Message.Command() == "delete_pokememe":
if c.Users.PlayerBetterThan(playerRaw, "owner") {
return c.Pokedexer.DeletePokememe(update)
return c.Pokedexer.DeletePokememe(&update)
}
return c.Talkers.AnyMessageUnauthorized(update)
return c.Talkers.AnyMessageUnauthorized(&update)
case update.Message.Command() == "me":
if playerRaw.ID != 0 {
c.Users.ProfileMessage(update, playerRaw)
c.Users.ProfileMessage(&update, playerRaw)
return "ok"
}
case update.Message.Command() == "top":
if playerRaw.ID != 0 {
return c.Statistics.TopList(update, playerRaw)
return c.Statistics.TopList(&update, playerRaw)
}
return c.Talkers.AnyMessageUnauthorized(update)
return c.Talkers.AnyMessageUnauthorized(&update)
case update.Message.Command() == "top_my":
if playerRaw.ID != 0 {
return c.Statistics.TopList(update, playerRaw)
return c.Statistics.TopList(&update, playerRaw)
}
return c.Talkers.AnyMessageUnauthorized(update)
return c.Talkers.AnyMessageUnauthorized(&update)
case update.Message.Command() == "best":
c.Pokedexer.AdvicePokememesList(update, playerRaw)
c.Pokedexer.AdvicePokememesList(&update, playerRaw)
return "ok"
case update.Message.Command() == "advice":
c.Pokedexer.AdvicePokememesList(update, playerRaw)
c.Pokedexer.AdvicePokememesList(&update, playerRaw)
return "ok"
case update.Message.Command() == "best_all":
c.Pokedexer.AdvicePokememesList(update, playerRaw)
c.Pokedexer.AdvicePokememesList(&update, playerRaw)
return "ok"
case update.Message.Command() == "advice_all":
c.Pokedexer.AdvicePokememesList(update, playerRaw)
c.Pokedexer.AdvicePokememesList(&update, playerRaw)
return "ok"
case update.Message.Command() == "best_nofilter":
c.Pokedexer.AdvicePokememesList(update, playerRaw)
c.Pokedexer.AdvicePokememesList(&update, playerRaw)
return "ok"
case update.Message.Command() == "reminders":
return c.Reminder.AlarmsList(update, playerRaw)
return c.Reminder.AlarmsList(&update, playerRaw)
case update.Message.Command() == "send_all":
if c.Users.PlayerBetterThan(playerRaw, "admin") {
c.Broadcaster.AdminBroadcastMessageCompose(update, playerRaw)
c.Broadcaster.AdminBroadcastMessageCompose(&update, playerRaw)
return "ok"
}
return c.Talkers.AnyMessageUnauthorized(update)
return c.Talkers.AnyMessageUnauthorized(&update)
case update.Message.Command() == "send_league":
if c.Users.PlayerBetterThan(playerRaw, "admin") {
c.Broadcaster.AdminBroadcastMessageCompose(update, playerRaw)
c.Broadcaster.AdminBroadcastMessageCompose(&update, playerRaw)
return "ok"
}
return c.Talkers.AnyMessageUnauthorized(update)
return c.Talkers.AnyMessageUnauthorized(&update)
case update.Message.Command() == "send_confirm":
if c.Users.PlayerBetterThan(playerRaw, "admin") {
go c.Broadcaster.AdminBroadcastMessageSend(update, playerRaw)
go c.Broadcaster.AdminBroadcastMessageSend(&update, playerRaw)
return "ok"
}
return c.Talkers.AnyMessageUnauthorized(update)
return c.Talkers.AnyMessageUnauthorized(&update)
case update.Message.Command() == "chats":
if c.Users.PlayerBetterThan(playerRaw, "admin") {
c.Chatter.GroupsList(update)
c.Chatter.GroupsList(&update)
return "ok"
}
return c.Talkers.AnyMessageUnauthorized(update)
return c.Talkers.AnyMessageUnauthorized(&update)
case update.Message.Command() == "squads":
return c.Squader.SquadsList(update, playerRaw)
return c.Squader.SquadsList(&update, playerRaw)
case update.Message.Command() == "pin":
if c.Users.PlayerBetterThan(playerRaw, "admin") {
return c.Pinner.PinMessageToSomeChats(update)
return c.Pinner.PinMessageToSomeChats(&update)
}
return c.Talkers.AnyMessageUnauthorized(update)
return c.Talkers.AnyMessageUnauthorized(&update)
case update.Message.Command() == "pin_all":
if c.Users.PlayerBetterThan(playerRaw, "admin") {
return c.Pinner.PinMessageToAllChats(update)
return c.Pinner.PinMessageToAllChats(&update)
}
return c.Talkers.AnyMessageUnauthorized(update)
return c.Talkers.AnyMessageUnauthorized(&update)
case update.Message.Command() == "orders":
if c.Users.PlayerBetterThan(playerRaw, "admin") {
return c.Orders.ListAllOrders(update)
return c.Orders.ListAllOrders(&update)
}
return c.Talkers.AnyMessageUnauthorized(update)
return c.Talkers.AnyMessageUnauthorized(&update)
case orderSendMsg.MatchString(text):
if c.Users.PlayerBetterThan(playerRaw, "admin") {
return c.Orders.SendOrder(update)
return c.Orders.SendOrder(&update)
}
return c.Talkers.AnyMessageUnauthorized(update)
return c.Talkers.AnyMessageUnauthorized(&update)
case usersMsg.MatchString(text):
if c.Users.PlayerBetterThan(playerRaw, "academic") {
return c.Users.UsersList(update)
return c.Users.UsersList(&update)
}
return c.Talkers.AnyMessageUnauthorized(update)
return c.Talkers.AnyMessageUnauthorized(&update)
case profileMsg.MatchString(text):
if c.Users.PlayerBetterThan(playerRaw, "academic") {
return c.Users.ForeignProfileMessage(update)
return c.Users.ForeignProfileMessage(&update)
}
return c.Talkers.AnyMessageUnauthorized(update)
return c.Talkers.AnyMessageUnauthorized(&update)
case update.Message.Command() == "find_level":
if c.Users.PlayerBetterThan(playerRaw, "academic") {
return c.Users.FindByLevel(update)
return c.Users.FindByLevel(&update)
}
return c.Talkers.AnyMessageUnauthorized(update)
return c.Talkers.AnyMessageUnauthorized(&update)
case update.Message.Command() == "find_user":
if c.Users.PlayerBetterThan(playerRaw, "academic") {
return c.Users.FindByName(update)
return c.Users.FindByName(&update)
}
return c.Talkers.AnyMessageUnauthorized(update)
return c.Talkers.AnyMessageUnauthorized(&update)
case update.Message.Command() == "find_top_attack":
if c.Users.PlayerBetterThan(playerRaw, "academic") {
return c.Users.FindByTopAttack(update)
return c.Users.FindByTopAttack(&update)
}
return c.Talkers.AnyMessageUnauthorized(update)
return c.Talkers.AnyMessageUnauthorized(&update)
case update.Message.Command() == "squad_add_user":
return c.Squader.AddUserToSquad(update, playerRaw)
return c.Squader.AddUserToSquad(&update, playerRaw)
case update.Message.Command() == "squad_add_commander":
return c.Squader.AddUserToSquad(update, playerRaw)
return c.Squader.AddUserToSquad(&update, playerRaw)
case squadInfoMsg.MatchString(text):
return c.Squader.SquadInfo(update, playerRaw)
case update.Message.Command() == "five_offer":
if c.Users.PlayerBetterThan(playerRaw, "admin") {
return c.Talkers.FiveOffer(update)
}
return c.Talkers.AnyMessageUnauthorized(update)
return c.Squader.SquadInfo(&update, playerRaw)
}
}
}

View File

@@ -1,5 +1,5 @@
// i2_bot Instinct PokememBro Bot
// Copyright (c) 2017 Vladimir "fat0troll" Hodakov
// Copyright (c) 2017-2018 Vladimir "fat0troll" Hodakov
package router
@@ -8,7 +8,7 @@ import (
)
// RouteRequest decides, what to do with user input
func (r *Router) RouteRequest(update *tgbotapi.Update) string {
func (r *Router) RouteRequest(update tgbotapi.Update) string {
c.Log.Debugln(update)
playerRaw, err := c.DataCache.GetOrCreatePlayerByTelegramID(update.Message.From.ID)
if err != nil {
@@ -18,7 +18,7 @@ func (r *Router) RouteRequest(update *tgbotapi.Update) string {
}
c.Log.Debug("Getting chat...")
chatRaw, err := c.DataCache.GetOrCreateChat(update)
chatRaw, err := c.DataCache.GetOrCreateChat(&update)
if err != nil {
c.Log.Error(err.Error())
return "fail"

View File

@@ -1,5 +1,5 @@
// i2_bot Instinct PokememBro Bot
// Copyright (c) 2017 Vladimir "fat0troll" Hodakov
// Copyright (c) 2017-2018 Vladimir "fat0troll" Hodakov
package routerinterface
@@ -11,7 +11,7 @@ import (
type RouterInterface interface {
Init()
RouteCallback(update *tgbotapi.Update) string
RouteInline(update *tgbotapi.Update) string
RouteRequest(update *tgbotapi.Update) string
RouteCallback(update tgbotapi.Update) string
RouteInline(update tgbotapi.Update) string
RouteRequest(update tgbotapi.Update) string
}