ooPhBot: Bot para IRC escrito en PHP

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.

Descargar:
Version 1.0.4: zip | tar.gz | tar.bz2

23 comentarios

  1. borraste el archivo?
    excelente blog saludos.

  2. deb: gracias por avisar. Tenia mal linkeado los archivos, ahora funcionan.

    saludos

  3. De nada.
    Y lo otro funciona con mysql?
    debo crear una base de datos ?
    Sorry si las preguntas son muy obvias.

  4. Tiene un script que se llama install.php, miralo.

  5. Hola disculpa por hacerte esta pregunta pero mira que debo poner en:

    $pid = pcntl_fork(); // el papa tendra un hijo, el hijo mata al papa
    if ($pid == -1)
    {
    die("Se produjo un error al iniciar el bot\n");
    }
    else if ($pid)
    {
    exit(); //Dejamos al hijo huerfano

    No lo entiendo…

    Espero que me ayudes ^^

    Un saludo hermano 😉

  6. Es que no el bot se instala pero luego al ejectutar el bot.php no pasa nada…

  7. Cibort: Tu no debes tocar el código fuente. El fichero bot.php no tienes para que modificarlo, basta con que modifique el fichero de configuracion y ya está.

    Saludos

  8. Pero es que cuando lo instalo esta todo perfecto, pero cuando abro el bot.php para que se conecte me aparece esto:

    Fatal error: Call to undefined function pcntl_fork() in /home/webcindario/c/o/conceptnet/super/bot.php on line 6

    Y bueno por eso te pregunte si debía editar algo.

    Y no funciona… al comienzo pensé que era el host, lo probé en 3 host distintos y todo lo mismo, luego pensé que yo era el del problema (XD) y lo intento un amigo de España y le paso lo mismo.

    Lo queremos meter en ogamenet (irc://irc.onlinegamenet.net:6667) es un poco distinta a lo que el bot esta hecho (funciona con cuentas de usuario no con nicks, en otras palabras tenemos un AuthServ y no un NickServ, pero debería funcionar de todas maneras) y nada…

    He estado tratando de instalarlo casi desde que pusiste el articulo (como el 10 de noviembre o algo así), es que buscamos un BOT como ese hace bastante tiempo :/

    Un saludo hermano, y gracias por responder 😉

  9. Cibort: Verifica la version y configuracion de php, todo indica que está desactivada esa funcion o bien fue compilado sin la opcion correcta. En otras palabras, tu php no “soporta” esa función, no tienes que modificar nada en el código.

    saludos

  10. o/ el anti-food funciona muy bien; pero el buscador de gooble no funca.

  11. Zerial

    enero 29, 2009 a las 1:25 pm

    mama21mama: hola! \o/

    Debe ser un error de parseo en la funcion de busqueda. El buscador obtiene los resultados en html desde Google y los parsea segun un patron especifico, quizas google cambio de posicion un tag o agrego o elimino cosas y dejo el script inservible. Vere si puedo solucionarlo.. tambien puedes meterle mano a ver si lo puedes solucionar.

    Saludos!

  12. yo fuí el primer betatester 😀
    saludos amiga!

  13. Hola tu bot es genial, pero me gustaría si es posible areglaras la parte de la busque de google
    saludos y suerte

  14. Zerial

    mayo 24, 2009 a las 5:28 pm

    @deb: Pronto publicare la siguiente version del bot, con esa funcionalidad ya corregida.

    saludos!

  15. Zerial

    mayo 26, 2009 a las 2:12 pm

    @deb: Aca esta la nueva version: http://blog.zerial.org/proyectos/oophbot-v105/

  16. Hola, me gustaria probar el bot pero estoy teniendo un problema al ejecutarlo desde el navegador, Fatal error: Call to undefined function pcntl_fork() in C:\AppServ\www\oophbot\bot.php on line 6
    ;\ sabes como podria solucionar eso?

  17. Zerial

    diciembre 9, 2009 a las 3:54 pm

    Hola @Bahal:

    En Windows la funcion pcntl_fork() no está por defecto, debes compilar php con el soporte o bien instalar el modulo.

    saludos

  18. Gracias, voy a ver como me va con eso, gracias por responder tan rapido 😉

  19. Zerial

    diciembre 9, 2009 a las 4:34 pm

    Si te resulta podrias comentarlo aca, para ayudar a mas gente que lo necesite!

  20. Al conectarlo me muestra el error:
    [12:06.21] Conectando …
    [12:06.31] Conectado.
    [12:06.31] nick -> killbot
    [12:06.31] ident -> killbot

    Undefined property: myBot::$CHECK_NS in /home/usuario/www/bot/oophbot/class/bot.class.php on line 111

    Y no hace nada mas.

  21. Hola kill123!

    Que version te descargaste?

  22. zerial ami tambien me sale como bahal pero no se como resolver el problema,podrias ayudarme por favor?

  23. Llegue como 8 años tarde a esto pero ejecuto el bot y no pasa nada solo aparece Content-type: text/html

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Esto sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.