Ver Mensaje Individual
  #1 (permalink)  
Antiguo 18/08/2004, 11:40
E*M*P*I*C*A*L
 
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 ($chCURLOPT_FILE$fp);
curl_setopt ($chCURLOPT_HEADER0);

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($conexion4096));

print 
date("[d/m @ H:i]")."<- ".$buffer ."\n";
if(
substr($buffer06) == 'PING :') {
fputs($conexion'PONG :'substr($buffer6)."\n\n");
if (
$a == 0){
fputs($conexion"JOIN $canal\n\n");
$a++;
}
registro ($buffer);
}
elseif (
$old_buffer != $buffer) {

// TIEMPO
if (eregi("!time",$buffer) && substr($buffer011) == ":^Galactus^") {
          
fputs($conexion,"privmsg $canal :time -> ".date("H:i:s",time())."\n\n"); } 
// VERSION
if (eregi("!ver",$buffer) && substr($buffer011) == ":^Galactus^") {
          
fputs($conexion,"privmsg $canal :EpiBot Versión 0.1\n\n"); }
// QUITAR
if (eregi("!quit",$buffer) && substr($buffer011) == ":^Galactus^") {
          
fputs($conexion,"quit :EpiBot Versión $version\n\n"); }
// INFO
if (eregi("!info",$buffer) && substr($buffer011) == ":^Galactus^") {
          
fputs($conexion,"privmsg $canal :$info\n\n"); }
// BUSQUEDA EN GOOGLE
if (eregi("!busca",$buffer) && substr($buffer011) == ":^Galactus^") {
                    
$cadena strrchr($buffer'!busca ');
$cadena substr($cadena730);
                    
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], 0100);

fputs($conexion,"privmsg $canal :$buf[$i]\n\n"); }}}
// ENVIAR UN MAIL
if (eregi("!mail",$buffer) && substr($buffer011) == ":^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.