Hace algun tiempo programé un bot para IRC en PHP, este bot tenia varias caracteristicas y opciones, usaba una base de datos mysql para almacenar lo que iba “aprendiendo”. Dentro de ellas están:
- Distintos niveles de privilegios (administrador, owner de un canal, access de un canal)
- Funcion para realizar busquedas en Google (!google <palabra>)
- Function para buscar definiciones en Google (!define <termino>)
- Distintas funciones de administracion de usuarios (!admin|access add|del|list)
- etc
Algunas de las caracteristicas de este bot es su proteccion anti flood que se define por el owner del canal y el Oráculo (Oracle; término puesto por mi a esta funcionalidad) que permite enseñar al bot definiciones de palabras para luego ser consultadas (!learn palabra significado, ?? palabra).
Este bot corre bajo php-cli (command line interface), es decir, por consola y tambien puede ser ejecutado desde la web. Queda trabajando como un demonio.
Version Actual:
La version actual es la misma desde enero del año 2007, no he vuelto a tocar el codigo (aunque sigo usando el bot), funciona todo menos las busquedas de terminos y definiciones en Google que, me imagino, hay que hacerle un par de modificaciones al codigo para que parsee bien las busquedas.
Changelog
VERSION 1.0.4 – 26 ENE 2007
– Cambiado el sistema de autentifiacion. Se verifica que el usuario
este identificado con NickServ.VERSION 1.0.3 – 19 ENE 2007
– Se agrego a la clase Bot el metodo TXTflood( … ) que verifica
el flood de texto de un usuario en un canal especifico, esta opcion
puede ser habilitada o desactivada por usuarios con privilegios mediante
!flood on|off en el canal.
– Se ha reescrito la clase que permite la identificacion y permite que los usuarios
tengan distintos privilegios. (CHAdmin.)
– Corregido el bug que expulsaba de manera distinta a !k o !kick (0 nick o [spacio] nick)
– Agregada la clase Google con los metodos !define y !google.VERSION 1.0.2 – 16 ENE 2007
– El bot corre en segundo plano (fork).
– Agregada una funcion extra en la clase del bot usando el binario ‘numerador’
ubicado en el directorio extras, la funcion es !num NUMERO.
– Fixeado bug que causaba la caida del bot al enviar dos veces el comando
para setear una clave. (reportado por Pons)
– Agregado soporte para unrealircd (antes solo habia sido probado en bahamut).
– Testeado en dancer-ircd, bahamut, Hyperion y unrealircd.VERSION 1.0.0 – 15 ENE 2007
– Corregido el fallo que cerraba la conexion a la base de datos por idle.
Comentarios recientes