Last active
March 1, 2020 14:54
-
-
Save shellscriptx/7bb7150338ebc52fe9a07886909eb0d1 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" --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