2017-11-21 14:52:05 +00:00
|
|
|
package main
|
|
|
|
|
|
|
|
import (
|
2018-01-19 20:41:16 +00:00
|
|
|
log "github.com/kirillDanshin/dlog"
|
|
|
|
tg "github.com/toby3d/telegram"
|
2017-11-21 14:52:05 +00:00
|
|
|
)
|
|
|
|
|
2017-12-27 16:15:44 +00:00
|
|
|
func commandAdd(msg *tg.Message, pack bool) {
|
2017-11-23 10:58:40 +00:00
|
|
|
T, err := switchLocale(msg.From.LanguageCode)
|
|
|
|
errCheck(err)
|
2017-11-21 14:52:05 +00:00
|
|
|
|
2018-01-19 13:02:46 +00:00
|
|
|
_, err = bot.SendChatAction(msg.Chat.ID, tg.ActionTyping)
|
|
|
|
errCheck(err)
|
|
|
|
|
2017-12-27 16:15:44 +00:00
|
|
|
reply := tg.NewMessage(msg.Chat.ID, T("reply_add_sticker"))
|
|
|
|
reply.ParseMode = tg.ModeMarkdown
|
2018-01-18 20:56:01 +00:00
|
|
|
reply.ReplyMarkup = getCancelButton(T)
|
2017-11-21 14:52:05 +00:00
|
|
|
|
2017-11-22 13:51:17 +00:00
|
|
|
err = dbChangeUserState(msg.From.ID, stateAddSticker)
|
|
|
|
errCheck(err)
|
|
|
|
|
|
|
|
if pack {
|
|
|
|
reply.Text = T("reply_add_pack")
|
|
|
|
|
|
|
|
err = dbChangeUserState(msg.From.ID, stateAddPack)
|
|
|
|
errCheck(err)
|
|
|
|
}
|
|
|
|
|
2017-11-21 14:52:05 +00:00
|
|
|
log.Ln("Sending add reply...")
|
|
|
|
_, err = bot.SendMessage(reply)
|
|
|
|
errCheck(err)
|
|
|
|
}
|
|
|
|
|
2017-12-27 16:15:44 +00:00
|
|
|
func actionAdd(msg *tg.Message, pack bool) {
|
2018-01-25 12:24:04 +00:00
|
|
|
if !msg.IsSticker() {
|
2018-01-19 14:43:26 +00:00
|
|
|
return
|
|
|
|
}
|
|
|
|
|
2017-11-23 10:58:40 +00:00
|
|
|
T, err := switchLocale(msg.From.LanguageCode)
|
|
|
|
errCheck(err)
|
2017-11-21 14:52:05 +00:00
|
|
|
|
2018-01-19 13:02:46 +00:00
|
|
|
_, err = bot.SendChatAction(msg.Chat.ID, tg.ActionTyping)
|
|
|
|
errCheck(err)
|
|
|
|
|
2017-12-27 16:15:44 +00:00
|
|
|
reply := tg.NewMessage(msg.Chat.ID, T("success_add_sticker"))
|
|
|
|
reply.ParseMode = tg.ModeMarkdown
|
2017-11-21 14:52:05 +00:00
|
|
|
|
2018-01-19 20:41:16 +00:00
|
|
|
if !pack {
|
|
|
|
var exist bool
|
2018-01-19 22:00:06 +00:00
|
|
|
sticker := msg.Sticker
|
2018-01-19 20:41:16 +00:00
|
|
|
exist, err = dbAddSticker(
|
2018-01-19 22:00:06 +00:00
|
|
|
msg.From.ID, sticker.SetName, sticker.FileID, sticker.Emoji,
|
2018-01-19 20:41:16 +00:00
|
|
|
)
|
|
|
|
errCheck(err)
|
|
|
|
|
|
|
|
if exist {
|
|
|
|
reply.Text = T("error_already_add_sticker")
|
|
|
|
}
|
|
|
|
|
|
|
|
reply.ReplyMarkup = getCancelButton(T)
|
|
|
|
_, err = bot.SendMessage(reply)
|
|
|
|
errCheck(err)
|
|
|
|
return
|
|
|
|
}
|
|
|
|
|
|
|
|
reply.Text = T("error_empty_add_pack", map[string]interface{}{
|
|
|
|
"AddStickerCommand": cmdAddSticker,
|
|
|
|
})
|
|
|
|
|
|
|
|
if msg.Sticker.SetName != "" {
|
2018-01-19 13:02:46 +00:00
|
|
|
var set *tg.StickerSet
|
|
|
|
set, err = bot.GetStickerSet(msg.Sticker.SetName)
|
2017-11-22 13:51:17 +00:00
|
|
|
errCheck(err)
|
|
|
|
|
|
|
|
log.Ln("SetTitle:", set.Title)
|
|
|
|
reply.Text = T("success_add_pack", map[string]interface{}{
|
|
|
|
"SetTitle": set.Title,
|
|
|
|
})
|
|
|
|
|
|
|
|
allExists := true
|
|
|
|
for _, sticker := range set.Stickers {
|
2018-01-19 13:02:46 +00:00
|
|
|
var exist bool
|
|
|
|
exist, err = dbAddSticker(
|
2018-01-19 22:00:06 +00:00
|
|
|
msg.From.ID, sticker.SetName, sticker.FileID, sticker.Emoji,
|
2017-12-27 16:13:20 +00:00
|
|
|
)
|
2017-11-22 13:51:17 +00:00
|
|
|
errCheck(err)
|
2017-11-21 14:52:05 +00:00
|
|
|
|
2018-01-19 13:02:46 +00:00
|
|
|
if !exist {
|
2017-11-22 13:51:17 +00:00
|
|
|
allExists = false
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
log.Ln("All exists?", allExists)
|
|
|
|
if allExists {
|
|
|
|
reply.Text = T("error_already_add_pack", map[string]interface{}{
|
|
|
|
"SetTitle": set.Title,
|
|
|
|
})
|
|
|
|
}
|
2017-11-21 14:52:05 +00:00
|
|
|
}
|
|
|
|
|
2018-01-19 13:02:46 +00:00
|
|
|
reply.ReplyMarkup = getCancelButton(T)
|
2017-11-21 14:52:05 +00:00
|
|
|
_, err = bot.SendMessage(reply)
|
|
|
|
errCheck(err)
|
|
|
|
}
|