Skip to content

Instantly share code, notes, and snippets.

@shellscriptx
Last active March 1, 2020 14:54
Show Gist options
  • Save shellscriptx/7bb7150338ebc52fe9a07886909eb0d1 to your computer and use it in GitHub Desktop.
Save shellscriptx/7bb7150338ebc52fe9a07886909eb0d1 to your computer and use it in GitHub Desktop.
#!/bin/bash
#
# Importando API
source ShellBot.sh
# Token do bot
bot_token='<TOKEN_AQUI>'
# Inicializando o bot
ShellBot.init --token "$bot_token" --flush --monitor --return map
function download_link()
{
local botao=''
local yt_re vid
yt_re='^https://www\.youtube\.com/watch\?v=([a-zA-Z0-9_-]+)'
if [[ ${message_text[$id]} =~ $yt_re ]]; then
# Extrai da url o ID do vídeo.
vid=${BASH_REMATCH[1]}
# Seta o ID do vídeo nos botões.
ShellBot.InlineKeyboardButton --button botao --line 1 --text 'Video' --callback_data "btn_video:$vid" # linha 1
ShellBot.InlineKeyboardButton --button botao --line 2 --text 'Música' --callback_data "btn_music:$vid" # linha 2
ShellBot.sendMessage --chat_id ${message_chat_id[$id]} \
--text "*Deseja baixar o contéudo a URL para?*" \
--parse_mode markdown \
--reply_markup "$(ShellBot.InlineKeyboardMarkup --button botao)"
else
ShellBot.sendMessage --chat_id ${message_chat_id[$id]} \
--text "*URL do Youtube inválida.*" \
--parse_mode markdown
fi
}
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
(
# Se a mensagem enviada é uma url.
case ${message_entities_type[$id]} in
url) download_link; continue;;
esac
# Analisa o botão pressionado.
case ${callback_query_data[$id]%%:*} in
btn_video)
ShellBot.answerCallbackQuery --callback_query_id ${callback_query_id[$id]}
ShellBot.sendMessage --chat_id ${callback_query_message_chat_id[$id]} \
--text "ID: ${callback_query_data[$id]#*:}\nConvertendo vídeo..."
;;
btn_music)
ShellBot.answerCallbackQuery --callback_query_id ${callback_query_id[$id]}
ShellBot.sendMessage --chat_id ${callback_query_message_chat_id[$id]} \
--text "ID: ${callback_query_data[$id]#*:}\nConvertendo música..."
;;
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