🚸 Improve user experience by adding buttons menu
Need to return inline-buttons for fast calling bot pack
This commit is contained in:
parent
133a271831
commit
ccf7a63be2
25
add.go
25
add.go
|
@ -13,6 +13,11 @@ func commandAdd(msg *tg.Message, pack bool) {
|
|||
|
||||
reply := tg.NewMessage(msg.Chat.ID, T("reply_add_sticker"))
|
||||
reply.ParseMode = tg.ModeMarkdown
|
||||
reply.ReplyMarkup = tg.NewReplyKeyboardMarkup(
|
||||
tg.NewReplyKeyboardRow(
|
||||
tg.NewReplyKeyboardButton(T("button_cancel")),
|
||||
),
|
||||
)
|
||||
|
||||
err = dbChangeUserState(msg.From.ID, stateAddSticker)
|
||||
errCheck(err)
|
||||
|
@ -74,15 +79,7 @@ func actionAdd(msg *tg.Message, pack bool) {
|
|||
"SetTitle": set.Title,
|
||||
})
|
||||
} else {
|
||||
markup := tg.NewInlineKeyboardMarkup(
|
||||
tg.NewInlineKeyboardRow(
|
||||
tg.NewInlineKeyboardButtonSwitch(
|
||||
T("button_share"),
|
||||
" ",
|
||||
),
|
||||
),
|
||||
)
|
||||
reply.ReplyMarkup = &markup
|
||||
reply.ReplyMarkup = getCancelButton(T)
|
||||
}
|
||||
default:
|
||||
exists, err := dbAddSticker(
|
||||
|
@ -101,15 +98,7 @@ func actionAdd(msg *tg.Message, pack bool) {
|
|||
msg.Sticker.Emoji = " "
|
||||
}
|
||||
|
||||
markup := tg.NewInlineKeyboardMarkup(
|
||||
tg.NewInlineKeyboardRow(
|
||||
tg.NewInlineKeyboardButtonSwitch(
|
||||
T("button_share"),
|
||||
msg.Sticker.Emoji,
|
||||
),
|
||||
),
|
||||
)
|
||||
reply.ReplyMarkup = &markup
|
||||
reply.ReplyMarkup = getCancelButton(T)
|
||||
}
|
||||
|
||||
_, err = bot.SendMessage(reply)
|
||||
|
|
|
@ -31,6 +31,8 @@ func commandCancel(msg *tg.Message) {
|
|||
errCheck(err)
|
||||
|
||||
reply := tg.NewMessage(msg.Chat.ID, text)
|
||||
reply.ReplyMarkup = getMenuKeyboard(T)
|
||||
|
||||
_, err = bot.SendMessage(reply)
|
||||
errCheck(err)
|
||||
}
|
||||
|
|
17
delete.go
17
delete.go
|
@ -19,6 +19,7 @@ func commandDelete(msg *tg.Message, pack bool) {
|
|||
errCheck(err)
|
||||
|
||||
reply := tg.NewMessage(msg.Chat.ID, T("error_empty_del"))
|
||||
reply.ReplyMarkup = getMenuKeyboard(T)
|
||||
_, err = bot.SendMessage(reply)
|
||||
errCheck(err)
|
||||
return
|
||||
|
@ -26,26 +27,17 @@ func commandDelete(msg *tg.Message, pack bool) {
|
|||
|
||||
reply := tg.NewMessage(msg.Chat.ID, T("reply_del_sticker"))
|
||||
reply.ParseMode = tg.ModeMarkdown
|
||||
reply.ReplyMarkup = getCancelButton(T)
|
||||
|
||||
err = dbChangeUserState(msg.From.ID, stateDeleteSticker)
|
||||
errCheck(err)
|
||||
|
||||
if pack {
|
||||
reply.Text = T("reply_del_pack")
|
||||
|
||||
err = dbChangeUserState(msg.From.ID, stateDeletePack)
|
||||
errCheck(err)
|
||||
}
|
||||
|
||||
markup := tg.NewInlineKeyboardMarkup(
|
||||
tg.NewInlineKeyboardRow(
|
||||
tg.NewInlineKeyboardButtonSwitchSelf(
|
||||
T("button_del"),
|
||||
" ",
|
||||
),
|
||||
),
|
||||
)
|
||||
reply.ReplyMarkup = &markup
|
||||
reply.Text = T("reply_del_pack")
|
||||
}
|
||||
|
||||
_, err = bot.SendMessage(reply)
|
||||
errCheck(err)
|
||||
|
@ -59,6 +51,7 @@ func actionDelete(msg *tg.Message, pack bool) {
|
|||
|
||||
reply := tg.NewMessage(msg.Chat.ID, T("success_del_sticker"))
|
||||
reply.ParseMode = tg.ModeMarkdown
|
||||
reply.ReplyMarkup = getCancelButton(T)
|
||||
|
||||
var notExist bool
|
||||
if pack {
|
||||
|
|
8
help.go
8
help.go
|
@ -11,12 +11,6 @@ func commandHelp(msg *tg.Message) {
|
|||
T, err := switchLocale(msg.From.LanguageCode)
|
||||
errCheck(err)
|
||||
|
||||
markup := tg.NewInlineKeyboardMarkup(
|
||||
tg.NewInlineKeyboardRow(
|
||||
tg.NewInlineKeyboardButtonSwitch(T("button_share"), " "),
|
||||
),
|
||||
)
|
||||
|
||||
reply := tg.NewMessage(
|
||||
msg.Chat.ID, T("reply_help", map[string]interface{}{
|
||||
"AddStickerCommand": cmdAddSticker,
|
||||
|
@ -29,7 +23,7 @@ func commandHelp(msg *tg.Message) {
|
|||
}),
|
||||
)
|
||||
reply.ParseMode = tg.ModeMarkdown
|
||||
reply.ReplyMarkup = &markup
|
||||
reply.ReplyMarkup = getMenuKeyboard(T)
|
||||
|
||||
_, err = bot.SendMessage(reply)
|
||||
errCheck(err)
|
||||
|
|
|
@ -0,0 +1,30 @@
|
|||
package main
|
||||
|
||||
import (
|
||||
"github.com/nicksnyder/go-i18n/i18n"
|
||||
tg "github.com/toby3d/telegram"
|
||||
)
|
||||
|
||||
func getMenuKeyboard(T i18n.TranslateFunc) *tg.ReplyKeyboardMarkup {
|
||||
return tg.NewReplyKeyboardMarkup(
|
||||
tg.NewReplyKeyboardRow(
|
||||
tg.NewReplyKeyboardButton(T("button_add_sticker")),
|
||||
tg.NewReplyKeyboardButton(T("button_add_pack")),
|
||||
),
|
||||
tg.NewReplyKeyboardRow(
|
||||
tg.NewReplyKeyboardButton(T("button_del_sticker")),
|
||||
tg.NewReplyKeyboardButton(T("button_del_pack")),
|
||||
),
|
||||
tg.NewReplyKeyboardRow(
|
||||
tg.NewReplyKeyboardButton(T("button_reset")),
|
||||
),
|
||||
)
|
||||
}
|
||||
|
||||
func getCancelButton(T i18n.TranslateFunc) *tg.ReplyKeyboardMarkup {
|
||||
return tg.NewReplyKeyboardMarkup(
|
||||
tg.NewReplyKeyboardRow(
|
||||
tg.NewReplyKeyboardButton(T("button_cancel")),
|
||||
),
|
||||
)
|
||||
}
|
|
@ -1,5 +1,15 @@
|
|||
button_add_pack:
|
||||
other: "\U0001F4E6 Add pack"
|
||||
button_add_sticker:
|
||||
other: ➕ Add sticker
|
||||
button_cancel:
|
||||
other: ❌ Cancel
|
||||
button_del:
|
||||
other: Select sticker for remove
|
||||
button_del_pack:
|
||||
other: "\U0001F5D1 Delete pack"
|
||||
button_del_sticker:
|
||||
other: "\U0001F5D1 Delete sticker"
|
||||
button_inline_add:
|
||||
one: You have {{.Count}} sticker. Add one more?
|
||||
other: You have {{.Count}} stickers. Add one more?
|
||||
|
@ -7,6 +17,8 @@ button_inline_empty:
|
|||
other: Your pack is empty
|
||||
button_inline_nothing:
|
||||
other: Not found stickers for {{.Query}}, add one?
|
||||
button_reset:
|
||||
other: "\U0001F525 Reset pack"
|
||||
button_share:
|
||||
other: Use your stickers pack!
|
||||
cancel_add_pack:
|
||||
|
@ -39,7 +51,7 @@ error_reset_phrase:
|
|||
error_unknown:
|
||||
other: |-
|
||||
I do not know what to do with this sticker.
|
||||
Please run /{{.AddStickerCommand}}, /{{.AddPackCommand}} or /{{.DeleteCommand}} command first.
|
||||
Please run /{{.AddStickerCommand}}, /{{.AddPackCommand}}, /{{.DeleteStickerCommand}} or /{{.DeletePackCommand}} command first.
|
||||
meta_key_phrase:
|
||||
other: Yes, I am totally sure.
|
||||
meta_reset_1:
|
||||
|
|
|
@ -8,4 +8,16 @@ button_inline_add:
|
|||
button_del:
|
||||
other: Select sticker for remove
|
||||
button_share:
|
||||
other: Use your stickers pack!
|
||||
other: Use your stickers pack!
|
||||
button_add_sticker:
|
||||
other: ➕ Add sticker
|
||||
button_add_pack:
|
||||
other: 📦 Add pack
|
||||
button_del_sticker:
|
||||
other: 🗑 Delete sticker
|
||||
button_del_pack:
|
||||
other: 🗑 Delete pack
|
||||
button_reset:
|
||||
other: 🔥 Reset pack
|
||||
button_cancel:
|
||||
other: ❌ Cancel
|
|
@ -1,5 +1,15 @@
|
|||
button_add_pack:
|
||||
other: "\U0001F4E6 Добавить набор"
|
||||
button_add_sticker:
|
||||
other: ➕ Добавить стикер
|
||||
button_cancel:
|
||||
other: ❌ Отменить
|
||||
button_del:
|
||||
other: Выбрать стикер для удаления
|
||||
button_del_pack:
|
||||
other: "\U0001F5D1 Удалить набор"
|
||||
button_del_sticker:
|
||||
other: "\U0001F5D1 Удалить стикер"
|
||||
button_inline_add:
|
||||
few: У тебя {{.Count}} стикеров. Добавить ещё один?
|
||||
many: У тебя {{.Count}} стикеров. Добавить ещё один?
|
||||
|
@ -9,6 +19,8 @@ button_inline_empty:
|
|||
other: Твой набор пуст
|
||||
button_inline_nothing:
|
||||
other: Нет стикеров с {{.Query}}, добавить один?
|
||||
button_reset:
|
||||
other: "\U0001F525 Сбросить набор"
|
||||
button_share:
|
||||
other: Воспользоваться твоим набором!
|
||||
cancel_add_pack:
|
||||
|
|
|
@ -10,4 +10,16 @@ button_inline_add:
|
|||
button_del:
|
||||
other: Выбрать стикер для удаления
|
||||
button_share:
|
||||
other: Воспользоваться твоим набором!
|
||||
other: Воспользоваться твоим набором!
|
||||
button_add_sticker:
|
||||
other: ➕ Добавить стикер
|
||||
button_add_pack:
|
||||
other: 📦 Добавить набор
|
||||
button_del_sticker:
|
||||
other: 🗑 Удалить стикер
|
||||
button_del_pack:
|
||||
other: 🗑 Удалить набор
|
||||
button_reset:
|
||||
other: 🔥 Сбросить набор
|
||||
button_cancel:
|
||||
other: ❌ Отменить
|
106
messages.go
106
messages.go
|
@ -1,8 +1,8 @@
|
|||
package main
|
||||
|
||||
import (
|
||||
log "github.com/kirillDanshin/dlog" // Insert logs only in debug builds
|
||||
tg "github.com/toby3d/telegram" // My Telegram bindings
|
||||
// log "github.com/kirillDanshin/dlog" // Insert logs only in debug builds
|
||||
tg "github.com/toby3d/telegram" // My Telegram bindings
|
||||
)
|
||||
|
||||
// message function check Message update on commands, sended stickers or other
|
||||
|
@ -16,13 +16,65 @@ func messages(msg *tg.Message) {
|
|||
state, err := dbGetUserState(msg.From.ID)
|
||||
errCheck(err)
|
||||
|
||||
T, err := switchLocale(msg.From.LanguageCode)
|
||||
errCheck(err)
|
||||
|
||||
switch msg.Text {
|
||||
case T("button_add_sticker"):
|
||||
commandAdd(msg, false)
|
||||
return
|
||||
case T("button_add_pack"):
|
||||
commandAdd(msg, true)
|
||||
return
|
||||
case T("button_del_sticker"):
|
||||
commandDelete(msg, false)
|
||||
return
|
||||
case T("button_del_pack"):
|
||||
commandDelete(msg, true)
|
||||
return
|
||||
case T("button_reset"):
|
||||
commandReset(msg)
|
||||
return
|
||||
case T("button_cancel"):
|
||||
commandCancel(msg)
|
||||
return
|
||||
}
|
||||
|
||||
switch state {
|
||||
case stateAddSticker:
|
||||
if msg.Sticker == nil {
|
||||
return
|
||||
}
|
||||
|
||||
actionAdd(msg, false)
|
||||
return
|
||||
case stateAddPack:
|
||||
if msg.Sticker == nil {
|
||||
return
|
||||
}
|
||||
|
||||
actionAdd(msg, true)
|
||||
return
|
||||
case stateDeleteSticker:
|
||||
if msg.Sticker == nil {
|
||||
return
|
||||
}
|
||||
|
||||
actionDelete(msg, false)
|
||||
return
|
||||
case stateDeletePack:
|
||||
if msg.Sticker == nil {
|
||||
return
|
||||
}
|
||||
|
||||
actionDelete(msg, true)
|
||||
return
|
||||
case stateReset:
|
||||
actionReset(msg)
|
||||
return
|
||||
case stateNone:
|
||||
bot.SendChatAction(msg.Chat.ID, tg.ActionTyping)
|
||||
|
||||
T, err := switchLocale(msg.From.LanguageCode)
|
||||
errCheck(err)
|
||||
|
||||
reply := tg.NewMessage(
|
||||
msg.Chat.ID,
|
||||
T("error_unknown", map[string]interface{}{
|
||||
|
@ -32,53 +84,11 @@ func messages(msg *tg.Message) {
|
|||
"DeletePackCommand": cmdDeletePack,
|
||||
}))
|
||||
reply.ParseMode = tg.ModeMarkdown
|
||||
reply.ReplyMarkup = getMenuKeyboard(T)
|
||||
|
||||
_, err = bot.SendMessage(reply)
|
||||
errCheck(err)
|
||||
return
|
||||
case stateAddSticker:
|
||||
if msg.Sticker == nil {
|
||||
return
|
||||
}
|
||||
|
||||
log.D(msg.Sticker)
|
||||
log.D(msg.Sticker.Emoji)
|
||||
|
||||
actionAdd(msg, false)
|
||||
return
|
||||
case stateAddPack:
|
||||
if msg.Sticker == nil {
|
||||
return
|
||||
}
|
||||
|
||||
log.D(msg.Sticker)
|
||||
log.D(msg.Sticker.Emoji)
|
||||
|
||||
actionAdd(msg, true)
|
||||
return
|
||||
case stateDeleteSticker:
|
||||
if msg.Sticker == nil {
|
||||
return
|
||||
}
|
||||
|
||||
log.D(msg.Sticker)
|
||||
log.D(msg.Sticker.Emoji)
|
||||
|
||||
actionDelete(msg, false)
|
||||
return
|
||||
case stateDeletePack:
|
||||
if msg.Sticker == nil {
|
||||
return
|
||||
}
|
||||
|
||||
log.D(msg.Sticker)
|
||||
log.D(msg.Sticker.Emoji)
|
||||
|
||||
actionDelete(msg, true)
|
||||
return
|
||||
case stateReset:
|
||||
actionReset(msg)
|
||||
return
|
||||
}
|
||||
|
||||
err = dbChangeUserState(msg.From.ID, stateNone)
|
||||
|
|
4
reset.go
4
reset.go
|
@ -22,6 +22,7 @@ func commandReset(msg *tg.Message) {
|
|||
|
||||
reply := tg.NewMessage(msg.Chat.ID, T("error_already_reset"))
|
||||
reply.ParseMode = tg.ModeMarkdown
|
||||
reply.ReplyMarkup = getMenuKeyboard(T)
|
||||
|
||||
_, err = bot.SendMessage(reply)
|
||||
errCheck(err)
|
||||
|
@ -38,6 +39,7 @@ func commandReset(msg *tg.Message) {
|
|||
"CancelCommand": cmdCancel,
|
||||
}))
|
||||
reply.ParseMode = tg.ModeMarkdown
|
||||
reply.ReplyMarkup = getCancelButton(T)
|
||||
|
||||
_, err = bot.SendMessage(reply)
|
||||
errCheck(err)
|
||||
|
@ -55,6 +57,7 @@ func actionReset(msg *tg.Message) {
|
|||
if msg.Text != T("meta_key_phrase") {
|
||||
reply := tg.NewMessage(msg.Chat.ID, T("error_reset_phrase"))
|
||||
reply.ParseMode = tg.ModeMarkdown
|
||||
reply.ReplyMarkup = getMenuKeyboard(T)
|
||||
|
||||
_, err = bot.SendMessage(reply)
|
||||
errCheck(err)
|
||||
|
@ -66,6 +69,7 @@ func actionReset(msg *tg.Message) {
|
|||
|
||||
reply := tg.NewMessage(msg.Chat.ID, T("success_reset"))
|
||||
reply.ParseMode = tg.ModeMarkdown
|
||||
reply.ReplyMarkup = tg.NewReplyKeyboardRemove(false)
|
||||
|
||||
_, err = bot.SendMessage(reply)
|
||||
errCheck(err)
|
||||
|
|
Loading…
Reference in New Issue