Created
February 26, 2020 00:17
-
-
Save shellscriptx/e4d071271aacda5ba6f4cc9332ea358b to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
# Importando API | |
source ShellBot.sh | |
# Token do bot | |
bot_token='<TOKEN_AQUI>' | |
# Inicializando o bot | |
ShellBot.init --token "$bot_token" --monitor --return map | |
# Menu de ajuda. | |
readonly AJUDA=$(cat << _eof | |
*Comandos:* | |
/horarios exibe os horários dos ônibus. | |
/ajuda exibe informações. | |
_eof | |
) | |
function exibir_horarios(){ | |
local botao= | |
# Cria o botão 'voltar'. | |
ShellBot.InlineKeyboardButton --button botao --text 'Voltar' --callback_data 'btn_voltar' --line 1 | |
# Anexa o botão a mensagem. | |
ShellBot.sendMessage --chat_id ${message_chat_id[$id]} \ | |
--text '*Horários disponíveis:*\n\n12:00\n12:30\n13:00\n13:30' \ | |
--parse_mode markdown \ | |
--reply_markup "$(ShellBot.InlineKeyboardMarkup --button botao)" | |
} | |
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 | |
( | |
# XXX MENSAGEM PADRÃO (TEXTO) XXX | |
case ${message_text[$id]} in | |
/start|/ajuda) ShellBot.sendMessage --chat_id ${message_chat_id[$id]} --text "$AJUDA" --parse_mode markdown;; | |
/horarios) exibir_horarios;; | |
*) # Se não for um comando válido. | |
# XXX MENSAGEM INLINE (TECLADO) XXX | |
# Verifica se existe uma query de evento de click e executa a função | |
# com base no valor definido em callback_data | |
case ${callback_query_data[$id]} in | |
btn_voltar) # Voltar. | |
# Envia uma notificação a query. | |
ShellBot.answerCallbackQuery --callback_query_id ${callback_query_id[$id]} | |
# Edita a query substituindo pelo menu de ajuda. | |
ShellBot.editMessageText --chat_id ${callback_query_message_chat_id[$id]} \ | |
--message_id ${callback_query_message_message_id[$id]} \ | |
--text "$AJUDA" \ | |
--parse_mode markdown | |
;; | |
esac | |
;; | |
esac | |
) & # Utilize a thread se deseja que o bot responda a várias requisições simultâneas. | |
done | |
done | |
#FIM |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment