Botube2: Un Bot para IRC

  • por javier
  • 22 de Marzo de 2023

Introducción

botube2

El IRC... principio y fin de la red... donde se gestan las grandes ideas y comunidades de hackers y usuarios con inquietudes tecnológicas se reunen para charlar en grupo, como hace más de 15 años, cuando surgió Arpanet...

Con esa idea romántica de la red, y sin querer llegar al gran público, si no a unos pocos, me decidí a desarrollar un Bot para IRC, que en un futuro espero que tenga funcionalidades avanzadas y mejore la funcionalidad de nuestro querido servicio de IRC, siempre disponible, siempre con muchos expertos dispuestos a colaborar y compartir ideas.

Funcionalidades

De momento, las funcionalidades son éstas:

  • !set gmt – Es un parámetro configurable que nos permitirá poner la zona horaria de nuestra preferencia, de forma que al consultar algo, la fecha y hora corresponda a nuestra ubicación

    setgmt
  • !last – Muestra la hora de la última actividad del nick seleccionado, útil para saber cuándo estuvo dicho nick por la red de IRC en el canal del bot

    last
  • !search – Damos como parámetros fecha/hora desde la que queremos consultar la charla del canal hasta fecha/hora de final y añadimos una expresión regular o bien una cadena de texto que queremos buscar en las conversaciones. Nos mostrará precedido de la hora y zona horaria, el/los nick/s y comentario/s que hizo tal o cual usuario.

    search
  • !stats seguido de fecha de inicio a fecha final y numero de nicks, muestra las estadísticas de uso del canal por los usuarios que participaron de él.

    >stats
  • die! - Dicho por el administrador del bot, permitirá cerrar la conexión del bot y la finalización del programa.

  • Por ultimo, si ponemos una URL en el canal, el bot nos dirá el título de la página en cuestión.

    url
  • Saluda al nick que entra en el canal, con un mensaje predefinido por nosotros. Podemos poner reglas o el saludo que queramos.

En un futuro, tengo pensadas funcionalidades avanzadas para el bot, seguid pendientes y espero que lo useis.

Donde descargarlo :

El bot está alojado en sourceforge: https://sourceforge.net/projects/botube2/

Configuración

Si decidís usarlo, antes de lanzarlo para probar los comandos, debereis configurarlo correctamente. A continuación os diré como:

  1. Lanzad mysql para que ejecute las instrucciones alojadas en el archivo database.sql
    $ mysql -u root -p -h 127.0.0.1 < database.sql
    Previamente debereis tener el servidor de mysql corriendo y configurado correctamente, escuchando en la ip 127.0.0.1 (bucle local o localhost)

  2. Deberemos instalar de nuestro repositorio de la distro que usemos la librería python-mysqldb, o sea, la biblioteca para python que nos permitirá a través del bot, utilizar el servidor MySQL

  3. Deberemos editar el archivo config.py de la siguiente manera: #------------------------8<-------------------------8<---------------------
    NICK= "BotNick" # El nick elegido por nosotros con el que el bot se identificará
    PASS= "" # Si procede, password para el nick del bot
    ADMNICK="YourNick"# Este es nuestro nick, administraremos el bot con él desde un cliente de IRC, ésto es aplicable al comando die! unicamente
    SERVER= "your.irc.server.net" # Esta es la IP o dns (la dirección del servidor de irc que escojamos)
    PORT= 6667 # puerto de la red de IRC
    CHANNEL= "#yourchannel" # El canal al que el bot dará servicio
    EXITAUTOCHANNEL=""# Si al acceder al IRC con un cliente, entramos a un canal no deseado, podremos salir de él automáticamente si lo ponemos en éste parámetro
    LOGDIR= ""
    LINESLEEPSECS=1.7 # Tiempo de espera entre el envío de una línea y la siguiente en los resultados de !search, para no floodear el servidor y que éste nos desconecte
    MYSQLRESTARTMINS=5 # reinicio del servidor MySQL cada X minutos, para no encontrarnos con un error en la conexión a MySQL, que terminaría el bot con un error
    SALUTE=True # Saluda al entrar al canal un nick valores: True o False, (si o no)
    SSALUTE="Bienvenido a %s, %%s, espero que tu estancia en el canal sea placentera" % (CHANNEL)
    # Saludo en nuestro idioma y preferencias
    DEBUG=True
    # Valido para tracear el bot únicamente. Puesto a False, desactiva la salida
    PROXY=""
    # Si para salir a internet tenemos un proxy web, lo pondremos aquí, para más rápido acceso a ésta. El formato es ip:puerto entre comillas
    #-hasta aqui---------------8<-------------------------8<---------------------

Salvamos el archivo con nuestra configuración y procedemos a lanzar el bot: Desde consola, lanzamos...

$ ./botube2.py

El bot se conectará a la red de IRC y se unirá al canal que elegimos anteriormente.

En éste punto ya debería estar el bot funcionando y dando servicio a nuestro canal de IRC favorito.

Por cierto, por ahora, solo hay versión para Linux, quizá en un futuro, Windows esté en mis planes, pero de momento, ésto es lo que hay.

Sentiros libres de postear en sourceforge, en la web del bot, para sugerencias, comentarios, bugs y todo lo que se os ocurra.

Gracias por la lectura y … nos vemos en el IRC.

https://sourceforge.net/projects/botube2/

 
blog comments powered by Disqus

Puertos trampa, con python e iptables

  • por javier
  • 22 de Marzo de 2023

Otro quick&dirty script en python. En éste caso, vamos a crear los "puertos trampa" que queramos, de manera que quien se conecte, se bloqueará mediante una sencilla regla de iptables. Para ello, nuestro firewall deberá estar basado en iptables, caso contrario, no funcionará el invento. Sin más dilación, os muestro el script, que os podeis descargar al final del artículo.

Update cookies preferences