Si eres de los que aún disfruta de la vieja escuela con aMule en tu Raspberry Pi, sabrás que no hay nada más frustrante que estar mirando la pantalla esperando a que termine esa descarga de 1987. ¿No sería maravilloso que la «Mula» te enviara un mensaje al móvil cuando termina?
Hoy os traigo el tutorial definitivo. Y digo definitivo porque hemos peleado con todos los errores posibles: nombres de archivos con comillas, tamaños en bytes ilegibles y mensajes que nunca llegaban.
El Problema
La mayoría de los scripts que circulan por internet fallan porque aMule se vuelve loco con los espacios y los símbolos (como el apóstrofo de Don’t) y acaba enviando mensajes vacíos o bloqueando el sistema.
La Solución
Vamos a usar un script «inteligente» que recoge todo lo que aMule escupe, calcula los Megabytes y lo envía a Telegram usando un formato que nunca falla.
Paso 1: Configurar aMule
¡OJO! Antes de editar, detén aMule
sudo systemctl stop amule
Lo primero es decirle a aMule que ejecute nuestro script. Para ello, debemos editar el archivo amule.conf.
nano ~/.aMule/amule.conf
Busca la sección [UserEvents/DownloadCompleted] y déjala exactamente así (sin comillas, es el secreto del éxito):
CoreEnabled=1
CoreCommand=/home/tu_usuario/notificar_amule.sh %NAME %SIZE
Paso 2: Crear el Script Mágico
Crea el archivo sustituyendo tu_usuario por el tuyo propio:
nano /home/tu_usuario/notificar_amule.sh
y pega este código (sustituye tu Token y tu ID de Chat):
#!/bin/bash
# --- CONFIGURACION DEL BOT ---
TOKEN="TU_TOKEN_AQUI"
ID_CHAT="TU_ID_AQUI"
# 1. Recogemos todo lo que mande aMule de golpe
TODO="$*"
# 2. Extraemos el tamaño (el último número de la frase)
BYTES=$(echo "$TODO" | grep -oP '\d+$')
# 3. Limpiamos el nombre (quitamos el número del final)
NOMBRE=$(echo "$TODO" | sed 's/[0-9]*$//')
# 4. Calculamos los MB y sacamos la fecha de la Raspberry
TAMANO_MB=$((BYTES / 1048576))
FECHA=$(date +"%d/%m/%Y a las %H:%M")
# 5. El Mensaje (con emoticonos para darle estilo)
MENSAJE="✅ DESCARGA COMPLETADA
----------------------------------
🎵 Archivo: $NOMBRE
⚖️ Tamaño: $TAMANO_MB MB
🕒 Finalizado: $FECHA
🥧 Servidor: Raspberry Pi
----------------------------------"
# 6. Envío blindado con urlencode (evita que el mensaje se corte)
/usr/bin/curl -s -X POST "https://api.telegram.org/bot$TOKEN/sendMessage" \
--data-urlencode "chat_id=$ID_CHAT" \
--data-urlencode "text=$MENSAJE" > /dev/null
Paso 3: Permisos y Arranque
Para que esto funcione, dale permiso de ejecución al script:
chmod +x /home/tu_usuario/notificar_amule.sh
Ahora, arranca aMule de nuevo:
sudo systemctl restart amule
¡Y listo! A partir de ahora, cada vez que la Mula termine su trabajo, recibirás un «ping» en tu Telegram con toda la información. ¡A disfrutar de la descarga!