IRCGram: IRC <-> Telegram Bridge

Qué es?

Como parte de un proceso de aprendizaje de varias tecnologías, entre las cuales están unit testing, code coverage, calidad de software, EcmaScript6 (ES6), entre otras, desarrollé un pequeño software en NodeJS, que hace de bridge entre grupos de Telegram y canales de IRC.

Más adelante voy a dedicar posts específicos a cada una de las tecnologías usadas, pero por ahora, voy a centrarme pura y exclusivamente al bridge.

Por qué?

Allá en mis comienzos, recuerdo frecuentar diferentes servidores de IRC, donde conocí bastante gente, gente con la cuales hoy en día aún sigo manteniendo contacto.

Muchos de ellos, y algunos nuevos, naturalmente se fueron adaptando a los cambios de la tecnología. Surgieron diferentes herramientas de comunicación, chat, grupos, foros, y demás.

Con esto no digo que no me adapté y que soy un yeti barbudo en una cueva navegando con Netscape Navigator, y chateando con irssi, no. También hago uso de herramientas modernas y me fuí adaptando a los cambios, pero lo que si, debo ser uno de los pocos de mi grupo de amigos y gente conocida que sigue prefiriendo IRC a grupos de Telegram, Whatsapp y demás.

Así que bueno, a raíz se eso, y pensando como unificar ambos servicios, surge este bridge.

Funcionamiento

Resumidamente, mapea usuarios dentro de un grupo de Telegram a usuarios de IRC, es decir, por cada usuario que está en un grupo de Telegram, el software genera una nueva conección de IRC a un servidor y canal específicos, previamente definidos en un archivo de configuración.

Cuando un usuario habla en el grupo de Telegram, el bot busca el usuario (conección) de IRC asociada y envia el texto al canal que corresponda.

Y viceversa, o sea, cuando cualquier usuario de IRC (que no pertenece al grupo de Telegram) envía un mensaje al canal, el bot envía ese mensaje al grupo de Telegram.

Sí, es tan sencillo como suena.

En un futuro lejano cercano, voy a ir mejorándolo para que notifique los joins, parts, y demás, pero por ahora, es simplemente eso.

Código

El bridge fué desarrollado puramente en NodeJS, usando el estandar ES2015 y babel como transpiler.

Querés colaborar o modificarlo?

Podés encontrar el código en: https://github.com/zephrax/ircgram

:wq!

Related Article