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]