
18/08/2004, 11:40
|
| | Fecha de Ingreso: agosto-2004
Mensajes: 36
Antigüedad: 20 años, 7 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. |