Work on squads, alerts on new user with empty or spy profile
Closes #1 Closes #2
This commit is contained in:
39
lib/talkers/chats.go
Normal file
39
lib/talkers/chats.go
Normal file
@@ -0,0 +1,39 @@
|
||||
// i2_bot – Instinct PokememBro Bot
|
||||
// Copyright (c) 2017 Vladimir "fat0troll" Hodakov
|
||||
|
||||
package talkers
|
||||
|
||||
import (
|
||||
// stdlib
|
||||
"strconv"
|
||||
// 3rd party
|
||||
"github.com/go-telegram-bot-api/telegram-bot-api"
|
||||
)
|
||||
|
||||
// GroupsList lists all known pokememes
|
||||
func (t *Talkers) GroupsList(update tgbotapi.Update) string {
|
||||
groupChats, ok := c.Getters.GetAllGroupChatsWithSquads()
|
||||
if !ok {
|
||||
return "fail"
|
||||
}
|
||||
|
||||
message := "*Бот состоит в следующих групповых чатах:*\n"
|
||||
|
||||
for i := range groupChats {
|
||||
message += "---\n"
|
||||
message += "[#" + strconv.Itoa(groupChats[i].Chat.ID) + "] _" + groupChats[i].Chat.Name + "_\n"
|
||||
message += "Telegram ID: " + strconv.FormatInt(groupChats[i].Chat.TelegramID, 10) + "\n"
|
||||
if groupChats[i].IsSquad {
|
||||
message += "Является отрядом <статистика>\n"
|
||||
} else {
|
||||
message += "Не является отрядом. Сделать отрядом: /make\\_squad" + strconv.Itoa(groupChats[i].Chat.ID) + "\n"
|
||||
}
|
||||
}
|
||||
|
||||
msg := tgbotapi.NewMessage(update.Message.Chat.ID, message)
|
||||
msg.ParseMode = "Markdown"
|
||||
|
||||
c.Bot.Send(msg)
|
||||
|
||||
return "ok"
|
||||
}
|
@@ -21,6 +21,7 @@ func (t *Talkers) HelpMessage(update tgbotapi.Update, playerRaw *dbmapping.Playe
|
||||
message += "+ /pokedeks – получить список известных боту покемемов\n"
|
||||
if c.Getters.PlayerBetterThan(playerRaw, "admin") {
|
||||
message += "+ /send\\_all _текст_ — отправить сообщение всем пользователям бота\n"
|
||||
message += "+ /group\\_chats — получить список групп, в которых работает бот.\n"
|
||||
}
|
||||
message += "+ /help – выводит данное сообщение\n"
|
||||
|
||||
|
@@ -44,6 +44,14 @@ func (t *Talkers) pokememesListing(update tgbotapi.Update, page int, pokememesAr
|
||||
}
|
||||
}
|
||||
|
||||
if len(pokememesArray) > page*50 {
|
||||
message += "\n"
|
||||
message += "Переход на следующую страницу: /pokedeks" + strconv.Itoa(page+1)
|
||||
}
|
||||
if page > 1 {
|
||||
message += "\nПереход на предыдущую страницу: /pokedeks" + strconv.Itoa(page-1)
|
||||
}
|
||||
|
||||
msg := tgbotapi.NewMessage(update.Message.Chat.ID, message)
|
||||
msg.ParseMode = "Markdown"
|
||||
|
||||
|
@@ -33,7 +33,7 @@ type TalkersInterface interface {
|
||||
AdminBroadcastMessageCompose(update tgbotapi.Update, playerRaw *dbmapping.Player) string
|
||||
AdminBroadcastMessageSend(update tgbotapi.Update, playerRaw *dbmapping.Player) string
|
||||
|
||||
WelcomeMessage(update tgbotapi.Update) string
|
||||
GroupsList(update tgbotapi.Update) string
|
||||
|
||||
DurakMessage(update tgbotapi.Update)
|
||||
MatMessage(update tgbotapi.Update)
|
||||
|
@@ -1,68 +0,0 @@
|
||||
// i2_bot – Instinct PokememBro Bot
|
||||
// Copyright (c) 2017 Vladimir "fat0troll" Hodakov
|
||||
|
||||
package talkers
|
||||
|
||||
import (
|
||||
// stdlib
|
||||
"time"
|
||||
// 3rd party
|
||||
"github.com/go-telegram-bot-api/telegram-bot-api"
|
||||
// local
|
||||
// "lab.pztrn.name/fat0troll/i2_bot/lib/dbmapping"
|
||||
)
|
||||
|
||||
func (t *Talkers) groupWelcomeUser(update tgbotapi.Update) string {
|
||||
playerRaw, ok := c.Getters.GetOrCreatePlayer(update.Message.NewChatMember.ID)
|
||||
if !ok {
|
||||
return "fail"
|
||||
}
|
||||
|
||||
profileRaw, profileExist := c.Getters.GetProfile(playerRaw.ID)
|
||||
|
||||
message := "*Бот Инстинкта приветствует тебя, *@"
|
||||
message += update.Message.NewChatMember.UserName
|
||||
message += "*!*\n\n"
|
||||
|
||||
if profileExist {
|
||||
if playerRaw.LeagueID == 1 {
|
||||
message += "Рад тебя видеть! Не забывай обновлять профиль почаще, и да пребудет с тобой Рандом!\n"
|
||||
message += "Последнее обновление твоего профиля: " + profileRaw.CreatedAt.Format("02.01.2006 15:04:05") + "."
|
||||
} else {
|
||||
message += "Обнови профиль, отправив его боту в личку. Так надо."
|
||||
}
|
||||
} else {
|
||||
// newbie
|
||||
message += "Добавь себе бота @i2\\_bot в список контактов и скинь в него игровой профиль. Это важно для успешной игры!\n"
|
||||
}
|
||||
|
||||
msg := tgbotapi.NewMessage(update.Message.Chat.ID, message)
|
||||
msg.ParseMode = "Markdown"
|
||||
|
||||
c.Bot.Send(msg)
|
||||
|
||||
return "ok"
|
||||
}
|
||||
|
||||
func (t *Talkers) groupStartMessage(update tgbotapi.Update) string {
|
||||
message := "*Бот Инстинкта приветствует этот чатик!*\n\n"
|
||||
message += "На слубже здравого смысла с " + time.Now().Format("02.01.2006 15:04:05") + "."
|
||||
|
||||
msg := tgbotapi.NewMessage(update.Message.Chat.ID, message)
|
||||
msg.ParseMode = "Markdown"
|
||||
|
||||
c.Bot.Send(msg)
|
||||
|
||||
return "ok"
|
||||
}
|
||||
|
||||
// WelcomeMessage welcomes new user on group or bot itself
|
||||
func (t *Talkers) WelcomeMessage(update tgbotapi.Update) string {
|
||||
if (update.Message.NewChatMember.UserName == "i2_bot") || (update.Message.NewChatMember.UserName == "i2_dev_bot") {
|
||||
return t.groupStartMessage(update)
|
||||
} else {
|
||||
return t.groupWelcomeUser(update)
|
||||
}
|
||||
|
||||
return "fail"
|
||||
}
|
Reference in New Issue
Block a user