Archived
1

Add fixes and linter improvements to talkers package

This commit is contained in:
Vladimir Hodakov 2018-03-31 17:25:41 +04:00
parent 4abfc457ce
commit c4d146ba20
8 changed files with 50 additions and 31 deletions

View File

@ -12,6 +12,10 @@ var (
c *appcontext.Context
)
const (
parseMode = "Markdown"
)
// Sender is a function-handling struct for sender
type Sender struct{}

View File

@ -7,10 +7,10 @@ import (
"github.com/go-telegram-bot-api/telegram-bot-api"
)
// SendMarkdownAnswer sends markdown-powered message as reply
// SendMarkdownAnswer sends markdown-powered message as answer
func (s *Sender) SendMarkdownAnswer(update *tgbotapi.Update, message string) {
msg := tgbotapi.NewMessage(update.Message.Chat.ID, message)
msg.ParseMode = "Markdown"
msg.ParseMode = parseMode
_, err := c.Bot.Send(msg)
if err != nil {
@ -21,7 +21,19 @@ func (s *Sender) SendMarkdownAnswer(update *tgbotapi.Update, message string) {
// SendMarkdownMessageToChatID sends markdown-powered message to specified chat
func (s *Sender) SendMarkdownMessageToChatID(chatID int64, message string) {
msg := tgbotapi.NewMessage(chatID, message)
msg.ParseMode = "Markdown"
msg.ParseMode = parseMode
_, err := c.Bot.Send(msg)
if err != nil {
c.Log.Error(err.Error())
}
}
// SendMarkdownReply sends markdown-powered message as reply
func (s *Sender) SendMarkdownReply(update *tgbotapi.Update, message string, messageID int) {
msg := tgbotapi.NewMessage(update.Message.Chat.ID, message)
msg.ParseMode = parseMode
msg.ReplyToMessageID = messageID
_, err := c.Bot.Send(msg)
if err != nil {

View File

@ -13,4 +13,5 @@ type SenderInterface interface {
SendMarkdownAnswer(update *tgbotapi.Update, message string)
SendMarkdownMessageToChatID(chatID int64, message string)
SendMarkdownReply(update *tgbotapi.Update, message string, messageID int)
}

View File

@ -9,6 +9,7 @@ import (
"time"
"github.com/go-telegram-bot-api/telegram-bot-api"
"source.wtfteam.pro/i2_bot/i2_bot/lib/constants"
)
// LongMessage is an easter egg
@ -23,7 +24,7 @@ func (t *Talkers) LongMessage(update *tgbotapi.Update) string {
c.Sender.SendMarkdownAnswer(update, message)
return "ok"
return constants.UserRequestSuccess
}
// DurakMessage is an easter egg
@ -41,12 +42,9 @@ func (t *Talkers) DurakMessage(update *tgbotapi.Update) string {
message = "Молодец, Яру. Возьми с полки пирожок."
}
msg := tgbotapi.NewMessage(update.Message.Chat.ID, message)
msg.ReplyToMessageID = update.Message.MessageID
c.Sender.SendMarkdownReply(update, message, update.Message.MessageID)
c.Bot.Send(msg)
return "ok"
return constants.UserRequestSuccess
}
// MatMessage is an easter rgg
@ -60,12 +58,9 @@ func (t *Talkers) MatMessage(update *tgbotapi.Update) string {
// Praise the Random Gods!
rand.Seed(time.Now().Unix())
msg := tgbotapi.NewMessage(update.Message.Chat.ID, reactions[rand.Intn(len(reactions))])
msg.ReplyToMessageID = update.Message.MessageID
c.Sender.SendMarkdownReply(update, reactions[rand.Intn(len(reactions))], update.Message.MessageID)
c.Bot.Send(msg)
return "ok"
return constants.UserRequestSuccess
}
// NewYearMessage2018 pins new year 2018 message to bastion, default and academy chats.
@ -73,6 +68,7 @@ func (t *Talkers) NewYearMessage2018() {
academyChatID, _ := strconv.ParseInt(c.Cfg.SpecialChats.AcademyID, 10, 64)
bastionChatID, _ := strconv.ParseInt(c.Cfg.SpecialChats.BastionID, 10, 64)
defaultChatID, _ := strconv.ParseInt(c.Cfg.SpecialChats.DefaultID, 10, 64)
parseMode := "Markdown"
message := "*Совет лиги Инстинкт поздравляет вас, дорогие игроки, с Новым 2018 Годом!*\n"
message += "*Важное сообщение от* Совета лиги Инстинкт (коллективное сознательное)\n\n"
@ -87,7 +83,7 @@ func (t *Talkers) NewYearMessage2018() {
message += "*Х*уй им, в общем, всем — с бантиком!"
msg := tgbotapi.NewMessage(defaultChatID, message)
msg.ParseMode = "Markdown"
msg.ParseMode = parseMode
pinnableMessage, _ := c.Bot.Send(msg)
@ -103,7 +99,7 @@ func (t *Talkers) NewYearMessage2018() {
}
msg = tgbotapi.NewMessage(bastionChatID, message)
msg.ParseMode = "Markdown"
msg.ParseMode = parseMode
pinnableMessage, _ = c.Bot.Send(msg)
@ -119,7 +115,7 @@ func (t *Talkers) NewYearMessage2018() {
}
msg = tgbotapi.NewMessage(academyChatID, message)
msg.ParseMode = "Markdown"
msg.ParseMode = parseMode
pinnableMessage, _ = c.Bot.Send(msg)

View File

@ -5,6 +5,7 @@ package talkers
import (
"github.com/go-telegram-bot-api/telegram-bot-api"
"source.wtfteam.pro/i2_bot/i2_bot/lib/constants"
)
// AnyMessageUnauthorized throws when user can't do something
@ -14,7 +15,7 @@ func (t *Talkers) AnyMessageUnauthorized(update *tgbotapi.Update) string {
c.Sender.SendMarkdownAnswer(update, message)
return "fail"
return constants.UserRequestFailed
}
// BanError throws error for persona non grata
@ -23,7 +24,7 @@ func (t *Talkers) BanError(update *tgbotapi.Update) string {
c.Sender.SendMarkdownAnswer(update, message)
return "fail"
return constants.UserRequestForbidden
}
// BotError throws when bot can't do something
@ -33,5 +34,5 @@ func (t *Talkers) BotError(update *tgbotapi.Update) string {
c.Sender.SendMarkdownAnswer(update, message)
return "fail"
return constants.BotError
}

View File

@ -26,5 +26,6 @@ func New(ac *appcontext.Context) {
func (t *Talkers) Init() {
c.Log.Info("Initializing common Responders...")
c.Cron.AddFunc("0 0 0 1 1 *", t.NewYearMessage2018)
// Uncomment and edit this before New Year 2019!
// c.Cron.AddFunc("0 0 0 1 1 *", t.NewYearMessage2018)
}

View File

@ -8,11 +8,12 @@ import (
"github.com/go-telegram-bot-api/telegram-bot-api"
"source.wtfteam.pro/i2_bot/i2_bot/lib/config"
"source.wtfteam.pro/i2_bot/i2_bot/lib/constants"
"source.wtfteam.pro/i2_bot/i2_bot/lib/dbmapping"
)
// AcademyMessage gives user link to Bastion
func (t *Talkers) AcademyMessage(update *tgbotapi.Update, playerRaw *dbmapping.Player) {
func (t *Talkers) AcademyMessage(update *tgbotapi.Update, playerRaw *dbmapping.Player) string {
message := ""
if playerRaw.LeagueID > 1 {
@ -24,14 +25,13 @@ func (t *Talkers) AcademyMessage(update *tgbotapi.Update, playerRaw *dbmapping.P
message += "Чат для обучения новичков предумростям игры расположен по ссылке: https://t.me/joinchat/G2vME04jk02v2etRmumylg"
}
msg := tgbotapi.NewMessage(update.Message.Chat.ID, message)
msg.ParseMode = "Markdown"
c.Sender.SendMarkdownAnswer(update, message)
c.Bot.Send(msg)
return constants.UserRequestSuccess
}
// BastionMessage gives user link to Bastion
func (t *Talkers) BastionMessage(update *tgbotapi.Update, playerRaw *dbmapping.Player) {
func (t *Talkers) BastionMessage(update *tgbotapi.Update, playerRaw *dbmapping.Player) string {
message := ""
if playerRaw.LeagueID > 1 {
@ -44,10 +44,12 @@ func (t *Talkers) BastionMessage(update *tgbotapi.Update, playerRaw *dbmapping.P
}
c.Sender.SendMarkdownAnswer(update, message)
return constants.UserRequestSuccess
}
// HelpMessage gives user all available commands
func (t *Talkers) HelpMessage(update *tgbotapi.Update, playerRaw *dbmapping.Player) {
func (t *Talkers) HelpMessage(update *tgbotapi.Update, playerRaw *dbmapping.Player) string {
message := "*Бот Инстинкта Enhanced.*\n\n"
message += "Текущая версия: *" + config.VERSION + "*\n\n"
message += "Список команд\n\n"
@ -95,6 +97,8 @@ func (t *Talkers) HelpMessage(update *tgbotapi.Update, playerRaw *dbmapping.Play
message += "_Топ ранжируется по размеру благодарности. Здесь может быть ваша реклама!_"
c.Sender.SendMarkdownAnswer(update, message)
return constants.UserRequestSuccess
}
// FAQMessage prints frequently asked questions
@ -139,5 +143,5 @@ func (t *Talkers) FAQMessage(update *tgbotapi.Update) string {
c.Sender.SendMarkdownAnswer(update, message)
return "ok"
return constants.UserRequestSuccess
}

View File

@ -12,9 +12,9 @@ import (
type TalkersInterface interface {
Init()
AcademyMessage(update *tgbotapi.Update, playerRaw *dbmapping.Player)
BastionMessage(update *tgbotapi.Update, playerRaw *dbmapping.Player)
HelpMessage(update *tgbotapi.Update, playerRaw *dbmapping.Player)
AcademyMessage(update *tgbotapi.Update, playerRaw *dbmapping.Player) string
BastionMessage(update *tgbotapi.Update, playerRaw *dbmapping.Player) string
HelpMessage(update *tgbotapi.Update, playerRaw *dbmapping.Player) string
FAQMessage(update *tgbotapi.Update) string
AnyMessageUnauthorized(update *tgbotapi.Update) string