ShellBot - Crie Bots para Telegram em Shell Script
ShellBot é uma API desenvolvida em Shell Script com o propósito de facilitar e agilizar a criação de bots na plataforma Telegram. O fato de ter sido desenvolvido na linguagem script nativa do ambiente Linux e que utiliza o interpretador de comandos BASH, oferece ao usuário uma portabilidade entre sistemas do mesmo dialeto.
ShellBot API - Criando bot na plataforma Telegram
Acredito que você já tenha ouvido falar no Telegram ou até mesmo utiliza o aplicativo como padrão para troca de mensagens. Ele possui inúmeros recursos, porém, existe um que merece ser mencionado. O suporte a bots, tão comumente chamados de robôs e, é claro, o Telegram disponibiliza sua API para desenvolvedores criarem seus próprios bots para as mais diversas finalidades.
Veja: Telegram APIs
Você também irá encontrar API's não oficiais desenvolvidas em diversas linguagens, tais como: Java, Python, PHP, C#, Lua, Go etc.
Veja: Bot Code Examples
Infelizmente, não havia encontrado nenhum projeto desenvolvido em shell script para este propósito. No inicio, minha ideia era apenas criar um simples bot de boas-vindas em shell puro e, felizmente, tive êxito (https://t.me/shellscriptx_bot).
Com o tempo, novos recursos foram surgindo e a manutenção do código ficou cada vez mais difícil devido à ausência de uma API, foi então que a necessidade de criar uma surgiu e então nasceu o ShellBot.
Atualmente, a API ShellBot está na versão 4.2 e disponível no Github.
Download:
git clone https://github.com/shellscriptx/ShellBot.git && cd ShellBot
Copie o arquivo "ShellBot.sh" para a pasta de projeto do seu bot.
Exemplo:
cp ShellBot.sh /projeto/meu_bot/
Exemplo:
Ou:
Não é necessário permissão para execução. É recomendado que o arquivo "ShellBot.sh" esteja no mesmo diretório do projeto do seu bot. Caso contrário, é necessário informar o caminho completo. Exemplo:
source /home/usuario/ShellBot.sh
Feito isso, todas as funções e variáveis estarão disponíveis em seu projeto.
Infelizmente, não irei conseguir abordar aqui todo conteúdo acerca do ShellBot, mas posso recomendar a leitura da documentação do mesmo:
O código abaixo é um exemplo de um WelcomeBot, que envia uma mensagem personalizada de boas-vindas ao usuário no momento em que ingressa ao grupo (disponível no Github).
A atualização da documentação está em andamento, ou seja, algumas informações podem estar ausentes. Alguns exemplos de scripts na utilização da API estão disponíveis no repositório.
Veja também:
Fiquem à vontade para distribuir, modificar, colaborar e espero que, de alguma forma, seja útil para vocês.
Qualquer dúvida ou sugestão, é só entrar em contato:
Telegram: https://t.me/x_SHAMAN_x
Telegram (Grupo): https://t.me/shellscript_x
Email: shellscriptx@gmail.com
Veja: Telegram APIs
Você também irá encontrar API's não oficiais desenvolvidas em diversas linguagens, tais como: Java, Python, PHP, C#, Lua, Go etc.
Veja: Bot Code Examples
Infelizmente, não havia encontrado nenhum projeto desenvolvido em shell script para este propósito. No inicio, minha ideia era apenas criar um simples bot de boas-vindas em shell puro e, felizmente, tive êxito (https://t.me/shellscriptx_bot).
Com o tempo, novos recursos foram surgindo e a manutenção do código ficou cada vez mais difícil devido à ausência de uma API, foi então que a necessidade de criar uma surgiu e então nasceu o ShellBot.
Atualmente, a API ShellBot está na versão 4.2 e disponível no Github.
Download:
git clone https://github.com/shellscriptx/ShellBot.git && cd ShellBot
Copie o arquivo "ShellBot.sh" para a pasta de projeto do seu bot.
Exemplo:
cp ShellBot.sh /projeto/meu_bot/
Como usar
Para utilizar as funções do ShellBot, é necessário importá-lo em seu script.Exemplo:
#!/bin/bash # Meu bot # Importando source ShellBot.sh
Ou:
#!/bin/bash # Meu bot # Importando . ShellBot.sh
Não é necessário permissão para execução. É recomendado que o arquivo "ShellBot.sh" esteja no mesmo diretório do projeto do seu bot. Caso contrário, é necessário informar o caminho completo. Exemplo:
source /home/usuario/ShellBot.sh
Feito isso, todas as funções e variáveis estarão disponíveis em seu projeto.
Infelizmente, não irei conseguir abordar aqui todo conteúdo acerca do ShellBot, mas posso recomendar a leitura da documentação do mesmo:
O código abaixo é um exemplo de um WelcomeBot, que envia uma mensagem personalizada de boas-vindas ao usuário no momento em que ingressa ao grupo (disponível no Github).
#!/bin/bash
# script: WelcomeBot.sh
#
# Para melhor compreensão foram utilizados parâmetros longos nas funções; Podendo
# ser substituídos pelos parâmetros curtos respectivos.
# Importando API
source ShellBot.sh
# Token do bot
bot_token='<TOKEN_AQUI>'
# Inicializando o bot
ShellBot.init --token "$bot_token"
ShellBot.username
# boas vindas
msg_bem_vindo()
{
local msg
# Texto da mensagem
msg="🆔 [@${message_new_chat_member_username[$id]:-null}]
"
msg+="🗣 Olá *${message_new_chat_member_first_name[$id]}*"'!!
'
msg+="Seja bem-vindo(a) ao *$message_chat_title*.
"
msg+='`Se precisar de ajuda ou informações sobre meus comandos, é só me chamar no privado.`'"[@$(ShellBot.username)]"
# Envia a mensagem de boas vindas.
ShellBot.sendMessage --chat_id ${message_chat_id[$id]}
--text "$(echo -e $msg)"
--parse_mode markdown
return 0
}
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
(
# Chama a função 'msg_bem_vindo' se o valor de 'message_new_chat_member_id' não for nulo.
[[ ${message_new_chat_member_id[$id]} ]] && msg_bem_vindo
# Verifica se a mensagem enviada pelo usuário é um comando válido.
case ${message_text[$id]} in
*)
:
# <BOT COMANDOS> ...
;;
esac
) & # Utilize a thread se deseja que o bot responda a várias requisições simultâneas.
done
done
#FIM
A atualização da documentação está em andamento, ou seja, algumas informações podem estar ausentes. Alguns exemplos de scripts na utilização da API estão disponíveis no repositório.
Veja também:
Fiquem à vontade para distribuir, modificar, colaborar e espero que, de alguma forma, seja útil para vocês.
Qualquer dúvida ou sugestão, é só entrar em contato:
Telegram: https://t.me/x_SHAMAN_x
Telegram (Grupo): https://t.me/shellscript_x
Email: shellscriptx@gmail.com