Hace un tiempo empece a investigar la posibilidad de hacer un “robot” para Telegram – https://telegram.org/ – y encontré un “How to…”, en Instructables, muy interesante de como realizar tareas automatizadas con un lenguaje llamado LUA – www.lua.org -, así que me puse y esto fue lo que resulto:
function on_msg_receive (msg)
local directorio_de_trabajo = '[PATH]'
if msg.out then
return
end
if (msg.text=='ping' or msg.text=='Ping') then
send_msg (msg.from.print_name, 'pong', ok_cb, false)
end
if (string.upper(msg.text)=='AYUDA') then
local inf = assert(io.open(..directorio_de_trabajo.."/script/ayuda.log", "r"), "Failed to open input file")
local text = inf:read("*all");
send_msg (msg.from.print_name, text, ok_cb, false)
end
if (string.upper(msg.text)=='RADAR') then
os.execute('wget http://www.smn.gov.ar/radar/CMAX_240_Z_1_ANIM.gif --directory-prefix='..directorio_de_trabajo..'script/smn')
send_msg (msg.from.print_name, ' >>> Se adjunta imagen de RADAR del SMN.gov.ar', ok_cb, false)
send_document (msg.from.print_name, directorio_de_trabajo..'script/smn/CMAX_240_Z_1_ANIM.gif', ok_cb, false)
end
if (string.upper(string.sub(msg.text,1,5))=='METAR') then
local argumento = string.upper(string.sub (msg.text,7))
if argumento=='' then
send_msg (msg.from.print_name, ' >>> Falta codigo ICAO de 4 letras.', ok_cb, false)
else
local file = 'php [PATH]/script/METAR_TAF_app.php '
os.execute(file .. argumento)
local inf = assert(io.open(..directorio_de_trabajo.."/script/metar.html", "r"), "Failed to open input file")
local text = inf:read("*all");
send_msg (msg.from.print_name, text, ok_cb, false)
send_msg (msg.from.print_name, ' >>> Se adjunta archivo', ok_cb, false)
send_document (msg.from.print_name, ..directorio_de_trabajo..'/script/metar.html', ok_cb, false)
end
end
if (string.upper(string.sub(msg.text,1,5))=='NOTAM') then
local argumento = string.upper(string.sub (msg.text,7))
if argumento=='' then
send_msg (msg.from.print_name, ' >>> Falta codigo local de 3 letras', ok_cb, false)
else
local file = 'php /home/cubie/proyecto_telegram_metar/tg/script/NOTAM_app.php '
os.execute(file .. argumento)
local archivo = directorio_de_trabajo..'script/notams/notam'..argumento..'.html'
send_msg (msg.from.print_name, ' >>> Se adjunta archivo', ok_cb, false)
send_document (msg.from.print_name, archivo, ok_cb, false)
end
end
end
En este post pueden encontrar los script de METAR / TAF / NOTAM.
A ver…
os.execute = Ejecuta cosas a nivel OS
send_msg = Envía mensaje
send_document = Envía documento
En Ayuda lo que hace es abrir un archivo “ayuda.log”, lo lee y lo manda como mensaje.
En Radar lo que hace es bajar un GIF y enviarlo como documento ( para que lo puedas ver animado, si lo mandas como imagen es estático ).
En Metar ejecuta un script de PHP el cual arma una pagina llamada metar.html, se lee dicho archivo, se la envía como mensaje de texto y como documento adjunto.
En Notam hace lo mismo que el caso de Metar pero obviamente es otro el script que ejecuta y lo que envía.
Para finalizar, la ejecución de Telegram ( la instalación esta en el how to… ) hay que realizarla de la siguiente manera: bin/telegram-cli -k tg-server.pub -W -s [SCRIPT]