#!/bin/bash
# Importando API
source ShellBot.sh
# Token do bot
bot_token='<TOKEN_AQUI>'
# Inicializando o bot
ShellBot.init --token "$bot_token" --monitor --flush
# MEMU PRINCIPAL (botão)
botao_conf=''
# Define as configurações e atribui os valor de retorno (callback_data) do botão.
# Sempre que um InlineButton é pressionado pelo usuário, o valor definido no parâmetro 'callback_data'
# é retornado e armazenado na variável 'callback_query_data'.
ShellBot.InlineKeyboardButton --button 'botao_conf' --line 1 --text 'Configurações' --callback_data 'btn_conf' # valor: btn_conf
# Cria o objeto inline_keyboard contendo os elementos armazenados na variável 'botao1'
# É retornada a nova estrutura e armazena em 'keyboard1'.
keyboard1="$(ShellBot.InlineKeyboardMarkup -b 'botao_conf')"
#-------------------------
# SUBMENU (botões)
btn_sub_menu=''
ShellBot.InlineKeyboardButton --button 'btn_sub_menu' --line 1 --text 'Opcao 1' --callback_data '1'
ShellBot.InlineKeyboardButton --button 'btn_sub_menu' --line 2 --text 'Opcao 2' --callback_data '2'
ShellBot.InlineKeyboardButton --button 'btn_sub_menu' --line 3 --text 'Opcao 3' --callback_data '3'
keyboard2="$(ShellBot.InlineKeyboardMarkup -b 'btn_sub_menu')"
# Função
function exibir_submenu(){
# Envia o sub-menu sobrescrevendo o menu principal.
# Em um Inline Keyboard os valores de retorno estão associados as variáveis 'callback_query_*'
ShellBot.editMessageText --chat_id ${callback_query_message_chat_id[$id]} \
--message_id ${callback_query_message_message_id[$id]} \
--text '*Submenu*' \
--parse_mode markdown \
--reply_markup "$keyboard2"
}
# Registra o nome da função associando-a ao valor de 'callback_data'.
# botão inline callback função
# | | |
# [ Configurações ] -> btn_conf -> exibir_config
ShellBot.regHandleFunction --function exibir_submenu --callback_data btn_conf
while :
do
# Obtem as atualizações
ShellBot.getUpdates --limit 100 --offset $(ShellBot.OffsetNext) --timeout 30
# Lista o índice das atualizações
for id in $(ShellBot.ListUpdates)
do
# Inicio thread
(
# Monitora as funções associadas ao valores definidos de 'callback'.
ShellBot.watchHandle --callback_data ${callback_query_data[$id]}
case ${message_text[$id]%%@*} in
# comando
/conf)
# Envia menu principal.
ShellBot.sendMessage --chat_id ${message_chat_id[$id]} \
--text "*Opção*" \
--parse_mode markdown \
--reply_markup "$keyboard1"
;;
esac
) & # Utilize a thread se deseja que o bot responda a várias requisições simultâneas.
done
done
#FIM
Last active
March 13, 2018 04:16
-
-
Save shellscriptx/36df465a82d5a7f8a655c6f05ee7d4e6 to your computer and use it in GitHub Desktop.