Archived
1

Welcome requests in groups, based on profiles and leagues

This commit is contained in:
2017-11-03 21:33:02 +04:00
parent 82f6ecd8f9
commit c998698b7a
10 changed files with 304 additions and 135 deletions

View File

@@ -20,7 +20,6 @@ func (t *Talkers) DurakMessage(update tgbotapi.Update) {
reactions = append(reactions, "Сам такой!",
"А ты типа нет?",
"Фу, как некультурно!",
"Профессор, если вы такой умный, то почему вы такой бедный? /donate",
"Попка не дурак, Попка самый непадающий бот!")
// Praise the Random Gods!

View File

@@ -31,7 +31,9 @@ type TalkersInterface interface {
GetterError(update tgbotapi.Update)
AdminBroadcastMessageCompose(update tgbotapi.Update, playerRaw *dbmapping.Player) string
AdminBroadcastMessageSend(update tgbotapi.Update, playerRaw *dbmapping.Player) string
AdminBroadcastMessageSend(update tgbotapi.Update, playerRaw *dbmapping.Player) string
WelcomeMessage(update tgbotapi.Update) string
DurakMessage(update tgbotapi.Update)
MatMessage(update tgbotapi.Update)

68
lib/talkers/welcome.go Normal file
View File

@@ -0,0 +1,68 @@
// 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"
}