From 1fecbd96ffcdecf1fbd31d4a1877a3ed91b038cc Mon Sep 17 00:00:00 2001 From: Vladimir Hodakov Date: Sun, 3 Dec 2017 14:37:54 +0400 Subject: [PATCH] Five pokeballs offer --- lib/router/private_request.go | 7 +++++ lib/talkers/help.go | 29 +++++++++++++++++++ .../talkersinterface/talkersinterface.go | 1 + 3 files changed, 37 insertions(+) diff --git a/lib/router/private_request.go b/lib/router/private_request.go index 8e4e844..5bf740a 100644 --- a/lib/router/private_request.go +++ b/lib/router/private_request.go @@ -164,6 +164,13 @@ func (r *Router) routePrivateRequest(update *tgbotapi.Update, playerRaw *dbmappi 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) } } } diff --git a/lib/talkers/help.go b/lib/talkers/help.go index adcf045..607b5d3 100644 --- a/lib/talkers/help.go +++ b/lib/talkers/help.go @@ -80,3 +80,32 @@ func (t *Talkers) HelpMessage(update *tgbotapi.Update, playerRaw *dbmapping.Play c.Bot.Send(msg) } + +// FiveOffer sends all users with 5 pokeballs limit offer for increasing pokeballs limit +func (t *Talkers) FiveOffer(update *tgbotapi.Update) string { + players := []dbmapping.Player{} + + err := c.Db.Select(&players, "SELECT p.* FROM players p, profiles pp WHERE p.id = pp.player_id AND pp.pokeballs = 5") + if err != nil { + c.Log.Error(err.Error()) + return "fail" + } + + for i := range players { + message := "Псст, я тут заметил, что у тебя всего 5 покеболов? Хочешь увеличить их лимит на 2 или даже больше? У всех игроков есть возможность получить бонус!\n\n1. Перейти по ссылке: https://telegram.me/storebot?start=pokemembrobot\n2. Нажать Start\n3. Выбрать ⭐️⭐️⭐️⭐️⭐️\n4. ОБЯЗАТЕЛЬНО написать, что вам нравится в игре (на русском языке). Оставьте большой и красочный отзыв!\n5. Переслать переписку с @storebot в тех поддержку игры @PBhelp<— только ему! и больше никому! (с текстом вашего отзыва)\n6. После проверки получить бонус 🎁 +2 к лимиту ⭕️ А если отзыв понравится админам (и это бывает очень часто), то бонус будет больше!\n7. Проверка - может занять некоторое время. Админы обязательно ответят вам о результатах проверки." + + msg := tgbotapi.NewMessage(int64(players[i].TelegramID), message) + msg.ParseMode = "Markdown" + + c.Bot.Send(msg) + } + + message := "Enlarge your pokeballs! Сообщение отправлено." + + msg := tgbotapi.NewMessage(update.Message.Chat.ID, message) + msg.ParseMode = "Markdown" + + c.Bot.Send(msg) + + return "ok" +} diff --git a/lib/talkers/talkersinterface/talkersinterface.go b/lib/talkers/talkersinterface/talkersinterface.go index c7a3d5c..0d6b228 100644 --- a/lib/talkers/talkersinterface/talkersinterface.go +++ b/lib/talkers/talkersinterface/talkersinterface.go @@ -15,6 +15,7 @@ type TalkersInterface interface { AcademyMessage(update *tgbotapi.Update, playerRaw *dbmapping.Player) BastionMessage(update *tgbotapi.Update, playerRaw *dbmapping.Player) HelpMessage(update *tgbotapi.Update, playerRaw *dbmapping.Player) + FiveOffer(update *tgbotapi.Update) string AnyMessageUnauthorized(update *tgbotapi.Update) string BotError(update *tgbotapi.Update) string