Mensajes de Año Nuevo automáticos

En este día, normalmente la banda de 3G/4G tiende a estar colapsada por la cantidad de mensajes de “Feliz año” que envía la gente a la misma hora. Esto, junto a tener que escribir el mismo mensaje para tus compañeros de trabajo, tu jefe, tus familiares, tu abuela (que es muy moderna y tiene smartphone) hace que el año nuevo sea cada vez más desesperante… ¿Y si automatizamos esta tarea y que sea otro quien se ocupe de enviarlo en nuestro lugar?

Esto es posible gracias a la magia de Telegram-CLI y Bash.

En primer lugar, necesitas instalar Telegram-Cli (Linux). Mi recomendación es instalarlo siempre desde el código fuente. Y si usas Debian, ten presente esta issue, ya que existe algún problema con OpenSSL a la hora de hacer el make. A continuación es necesario que nos logueemos (introduciendo el número de teléfono y el código del país).

En segundo lugar, necesitas este script y un usernames.txt donde incluiremos los ID de toda la gente a la que queremos que le llegue el mensaje (uno por línea).

El script original está aquí. Necesitarás actualizar la variable PATH con la ruta donde tienes tu Telegram-CLI instalado.

#!/bin/bash

############################################
# Author: Juanjo Salvador Piedra
# Website: http://juanjosalvador.es
# GitHub: https://github.es/JuanjoSalvador
# Twitter: @Linuxneitor
# Telegram: @JuanjoSalvador
############################################

# PATH to your Telegram-Cli installation
PATH="/path/to/tg"
# Replace this with your own message
MESSAGE="Feliz año nuevo! De parte de Juanjo y el equipo de JotaDevs ;)"
# File where is all usernames (one per line)
FILE="usernames.txt"

while IFS='' read -r USERNAME; do
	$PATH/bin/telegram-cli -W -e "msg $USERNAME $MESSAGE" > /dev/null && echo "Message sent to $USERNAME"
	sleep 10
done < "$FILE"

El último paso es programar el proceso utilizando at.

$ at 0000

Y veremos como el prompt cambia por un >. Entonces introducimos:

bash /ruta/del/script/happyNewYear.sh

Y le enviamos un EOF con Ctrl-D. Añadir bash delante es importante, dado que at ejecuta todo con /bin/sh en lugar de BASH, por lo que el script fallaría si no le indicamos explícitamente como debe ejecutarlo.

Llegados a este punto, podemos salir y despreocuparnos, que nuestro ordenador se encargará de enviar el mensaje llegada la hora, a la lista de contactos especificados.

Feliz Año Nuevo, y que disfrutéis de las vacaciones ;-)

ACTUALIZACIÓN

Me han notificado que es posible que Telegram nos ponga una limitación de mensajes por minuto que podemos enviar, lo cual podría dar pie a un baneo de una hora. Para evitar eso, he añadido un sleep 10 entre mensaje y mensaje. Sin embargo, es recomendable que la lista de usuarios no tenga más de 20 contactos para evitarnos malfuncionamiento.

¿Tienes alguna mejora para este artículo?
¡Mándame una pull request!

Comparte este artículo