18/08/2004, 11:40
|
| | Fecha de Ingreso: agosto-2004
Mensajes: 36
Antigüedad: 19 años, 8 meses Puntos: 0 | |
Búsqueda en google a traves del irc con PHP Hola, ando programando un bot de irc que haga las 4 tonterias de siempre y se me ocurrio que podría realizar busquedas en google y mostrar las urls que encuentre como he visto otras tantas veces en el irc. El problema esta que solo funciona si pongo una sola palabra, como por ejemplo:
<^Galactus^> !busca php
<[K7]> http://www.php.net/
<[K7]> http://www.phpbuilder.com/
<[K7]> http://www.php.com/
<[K7]> http://www.hotscripts.com/PHP/
<[K7]> http://www.grisoft.com/ Código PHP:
#!/usr/bin/php <?php /* Nombre: bot.php Versión: 0.2 Autor: Empical Fecha: 17 de Agosto del 2004 Características: Realiza una conexión estable por socket con un servidor de irc en internet Descripción: Este bot para irc puede realizar las siguiente tareas: - Escritura en un archivo del buffer - Imprimir la hora con la orden !time - Imprimir su versión con la orden !ver - Desconexión del servidor con la orden !quit - Imprime información del sistema con la orden !info - Envia un mail con la orden !mail - Realiza una busqueda en google con la orden !buscar */ // DEFINIMOS VARIABLES DE CONEXIÓN $servidor="irc.irc-hispano.org"; $puerto="6667"; $nick="[K7]"; $name="pepe"; $canal="#pruebasbot"; $realname="pepe"; $quit="pepe"; $header = "From: [email][email protected][/email]"; $version = "0.2"; $a = 0; //FUNCIÓN DE BUSQUEDA function busca($cadena) { $ch = curl_init ("http://www.google.es/search?hl=es&ie=UTF-8&q=$cadena&btnG=B%C3%BAsqueda+en+Google&meta="); $fp = fopen ("busca.txt", "w"); curl_setopt ($ch, CURLOPT_FILE, $fp); curl_setopt ($ch, CURLOPT_HEADER, 0); curl_exec ($ch); curl_close ($ch); fclose ($fp); } // FUNCION DE REGISTRO DEL BUFFER function registro ($registro) { $fp = fopen ("registro.txt", "a"); fputs ($fp, $registro); fclose($fp); } set_time_limit(0); $conexion = fsockopen($servidor, $puerto); if (!$conexion){ echo "No se pudo conectar a $servidor por el puerto $puerto"; } else { echo "conectando...\n\n"; fputs($conexion, "nick $nick\n\n"); fputs($conexion, "USER $nick empical2k4 empical2k4 :$name\n\n"); } $info = exec("uname -smon"); while (!feof($conexion)){ $buffer = trim(fgets($conexion, 4096)); print date("[d/m @ H:i]")."<- ".$buffer ."\n"; if(substr($buffer, 0, 6) == 'PING :') { fputs($conexion, 'PONG :'. substr($buffer, 6)."\n\n"); if ($a == 0){ fputs($conexion, "JOIN $canal\n\n"); $a++; } registro ($buffer); } elseif ($old_buffer != $buffer) { // TIEMPO if (eregi("!time",$buffer) && substr($buffer, 0, 11) == ":^Galactus^") { fputs($conexion,"privmsg $canal :time -> ".date("H:i:s",time())."\n\n"); } // VERSION if (eregi("!ver",$buffer) && substr($buffer, 0, 11) == ":^Galactus^") { fputs($conexion,"privmsg $canal :EpiBot Versión 0.1\n\n"); } // QUITAR if (eregi("!quit",$buffer) && substr($buffer, 0, 11) == ":^Galactus^") { fputs($conexion,"quit :EpiBot Versión $version\n\n"); } // INFO if (eregi("!info",$buffer) && substr($buffer, 0, 11) == ":^Galactus^") { fputs($conexion,"privmsg $canal :$info\n\n"); } // BUSQUEDA EN GOOGLE if (eregi("!busca",$buffer) && substr($buffer, 0, 11) == ":^Galactus^") { $cadena = strrchr($buffer, '!busca '); $cadena = substr($cadena, 7, 30); busca ($cadena); $buf = file_get_contents("busca.txt"); $buf = strip_tags($buf, "<a></a>"); $buf = split("<a href=", $buf); $a = count($buf); for ($i=0;$i<$a;$i++){ if (!eregi("www",$buf[$i])){ unset ($buf[$i]);} if (eregi("google",$buf[$i])){ unset ($buf[$i]);} if (eregi("/preferences",$buf[$i])){ unset ($buf[$i]);} if (eregi("pdf",$buf[$i])){ unset ($buf[$i]);} if (eregi("<br>",$buf[$i])){ unset ($buf[$i]);} if (eregi("/url",$buf[$i])){ unset ($buf[$i]);} $buf[$i] = eregi_replace(">", " ", $buf[$i]); $buf[$i] = eregi_replace(">>", " ", $buf[$i]); $buf[$i] = eregi_replace("</a", " ", $buf[$i]); $buf[$i] = strrev($buf[$i]); $buf[$i] = strstr($buf[$i], " /"); $buf[$i] = strrev($buf[$i]); if (strlen($buf[$i]) != 0){ $buf[$i] = substr($buf[$i], 0, 100); fputs($conexion,"privmsg $canal :$buf[$i]\n\n"); }}} // ENVIAR UN MAIL if (eregi("!mail",$buffer) && substr($buffer, 0, 11) == ":^Galactus^") { $mail = split('"', $buffer); //!mail to:"[email protected]" subj:"cualquiera" mem:"cualquiera" if (!mail($mail[1], $mail[3], $mail[5], $header)){ // habría que comprobar si las variables están definidas con isset() fputs($conexion,"privmsg $canal :No se pudo enviar el email\n\n"); } else { fputs($conexion,"privmsg $canal :El email se envio correctamente\n\n");} } } } ?>
__________________ Como aquel que calla otorga y aunque la ignorancia es sorda pude levantar la voz, más fuerte que los ladridos de los perros consentidos y que la voz del pastor. |