BaTbot es un BOT de Telegram simple escrito en Bash que puede responder a los mensajes de los usuarios, ejecutar comandos y hacer otras cosas interesantes.
- Se agregó el script runbot.sh para que el bot pueda ser invocado en /etc/rc.local para poder ser ejecutado al inicio del sistema.
- Se tradujo del italiano al español los archivos: admadduser, admdeluser y admlistuser.
- Se agregó archivo .gitignore para que no se tenga en cuenta los archivos *.lmsg que genera el bot.
- Se agregaron los archivos token.txt y id.txt para que el bot tome los datos desde esos archivos sin estar puestos manualmente. Se agregaron los .txt al .gitignore
- Traducción al Castellano
- cambió la variable BOTPATH n NMSGPATH y configure la ruta de guardado configurable. Tiene en cuenta los mensajes de texto no procesados para los vecinos.
- Lista agregada de usuarios aceptados “allowed_user” por @do2sz
- Agrupa notifica al usuario maestro de los comandos enviados al BOT.
- Agregación de la notificación del comandante no reconocida.
- comentar e mensaje en italiano
- se ajustan los comandos de expresiones regulares
- mensajes de texto fijos analizador de expresiones regulares
- caracteres fijos UTF-8 en nombre de usuario
- Uso
- Comandos simples
- Variables
- Comandos con expresiones regulares
- Enviar mensaje
- QUE HACER
**Modificar archivos token.txt y id.txt con la respectiva información.** Iniciar desde la consola:
./botbat
Dentro del script botbat encontrará una lista de comandos de ejemplo que puede configurar. Por ejemplo:
["/hello"]="echo Hi"
este comando activa el mensaje /hello de un usuario, ejecuta el comando del sistema echo Hi y devuelve la salida del comando al usuario mediante un mensaje.
¿Quieres saber el tiempo de actividad de tu servidor? No hay problema:
["/uptime"]="/usr/bin/uptime"
¿Espacio en disco libre a través de Telegram? vamos a hacerlo:
["/disks"]="/bin/df -h"
Ejecutar script externo:
["/auth ([a-zA-Z0-9]+)"]="/usr/local/bin/auth.sh @R1"
No intentes esto en casa :
["/exec (.*)"]="exec @R1"
Puedes usar variables! por ejemplo:
["/hello"]="echo Hi @FIRSTNAME, encantado de conocerte :)"
BaTbot muestra en la consola, y en tiempo real, todos los mensajes recibidos:
+ Set Token to: **** Check for new messages every: 1 seconds + Initializing BaTbot v1.4.3 Username: wafblue_bot First name: wafblue Bot ID: **** Done. Waiting for new messages... [chat **, from **] <theMiddle - Andrea Menin> \/hello Command /hello received, running cmd: echo Hi Andrea, pleased to meet you :)
- @USERID (int) ID del usuario que envió el comando activado
- @USERNAME (string) Nombre de usuario de usuario en Telegram
- @FIRSTNAME (string) El primer nombre del usuario
- @LASTNAME (string) El apellido del usuario
- @CHATID (int) El ID de chat donde el usuario envió un comando
- @MSGID (int) ID del mensaje que activó un comando
- @TEXT (string) El texto completo de un mensaje recibido
- @FROMID (int) ID del usuario que envió un mensaje
Regex group extract
- @R1 Contenido del primer grupo (.*)
- @R2 Contenido del segundo grupo (.*)
- @R3 Contenido del tercero grupo (.*)
También puede configurar un comando con argumentos, por ejemplo: “/ping 1234”. Todos los argumentos pueden ser expresiones regulares, por ejemplo:
["/ping ([0-9]+)"]="echo Pong: @R1" ["/blacklist ([0-9]+\.[0-9]+\.[0-9]+\.[0-9]+)"]="/sbin/iptables -A INPUT -s @R1 -j DROP" ["/whois ([a-zA-Z0-9\.\-]+)"]="/usr/bin/whois @R1" ["/host ([a-zA-Z0-9\.\-]+)"]="/usr/bin/host @R1"
Cuando BaTbot se está ejecutando, puede enviar un mensaje utilizando el ID del usuario.
Usando el comando .msg directamente en la consola.
.msg <ID> <MENSAJE>
Por ejemplo:
[chat 110440209, from 110440209] <theMiddle - Andrea Menin> hi bot :) .msg 110440209 hey!!!
2016-04-20 [high ] Corregir el análisis de mensajes de texto en API2.0 (gracias a rauhmaru)
2015-11-17 Extracción [high ]dinámica del grupo de expresiones regulares
Creamos un archivo bot.service en /lib/systemd/system con lo siguiente:
[Unit] Description=Este es el servicio para el arranque automático del Bot de Telegram. Documentation= After=network.target [Service] Type=simple User=tuusuario ExecStart=/directorio/donde/guardaste/BaTbot/bin/runbot.sh WorkingDirectory=/directorio/donde/dejaste/BaTbot/bin/ Restart=always [Install] WantedBy=multi-user.target
Una vez que guardamos el archivo hay que reiniciar los daemon con:
systemctl daemon-reload
Una vez que lo hacemos vamos a activarlo con:
sudo systemctl enable bot.service
Cuando esté activado el init (servicio que acabamos de generar) vamos a iniciar el daemon con:
sudo systemctl start bot.service
Para chequear el estado del servicio vamos a hacer:
sudo systemctl status bot.service
Si está activo y ejecutandose vamos a ver el log del bot