<?php
/**
 * CLIente IRC
 *
 * @author     Sinfocol
 * @copyright  2009 www.sinfocol.org
 * @link       http://www.sinfocol.org/2009/06/thewalrusbot-un-cliente-irc-sencillo-en-php/
 */
if(count($argv) > 1){
    include(
'Cliente.php');
    
$cliente = new Cliente();
    if(
getParametro('host')){
        
$cliente->servidor getParametro('host');
    }else{
        die(
'Se debe ingresar el host');
    }
    
$cliente->puerto      getParametro('puerto');
    
$cliente->canal       getParametro('canal');
    
$cliente->nick        getParametro('nick');
    
$cliente->clave       getParametro('pass');
    
$cliente->nombre      getParametro('nomb');
    
$cliente->sep         getParametro('sep');
    
$cliente->log         getParametro('log'false);
    
$cliente->verbose     getParametro('v'false);
    
$cliente->veryverbose getParametro('vv'false);
    if(
getParametro('php')){
        
$archivo fopen(getParametro('php'), 'r');
        if(!
$archivo) die('No se puede abrir el archivo ' getParametro('php'));
        
$datos '';
        while(!
feof($archivo)) $datos .= fgets($archivo);
        
fclose($archivo);
        
$cliente->php $datos;
        unset(
$datos);
        unset(
$archivo);
    }
    
$cliente->conectar();
    unset(
$cliente);
}else{
    echo 
"CLiente IRC\n";
    echo 
"Modo de uso: php {$argv[0]} -- -host irc.server.com [opcionales]\n\n";
    echo 
"Opcionales:\n";
    echo 
"-puerto 6667\n\tPuerto de conexión\n";
    echo 
"-canal #sinfocol\n\tCanal a conectarse\n";
    echo 
"-nick nickname\n\tDefine el nick a usar en el IRC\n";
    echo 
"-pass clavesecreta\n\tClave del usuario\n";
    echo 
"-nomb nombrereal\n\tNombre real del usuario\n";
    echo 
"-php codigo PHP\n\tArchivo que contiene código PHP que se ejecutará luego de procesar la cadena\n";
    echo 
"-sep separador\n\tSepara cada mensaje con <separador>\n";
    echo 
"-log\n\tRegistra la información en un archivo, -v o -vv deben estar presentes\n";
    echo 
"-v\n\tSalida detallada\n";
    echo 
"-vv\n\tSalida muy detallada\n";
}
function 
getParametro($nombre$retval true){
    global 
$argv;
    foreach(
$argv as $pos => $val){
        if( 
$val == '-'.$nombre ){
            if(!
$retval) return true;
            if(!empty(
$argv[$pos+1])){                    
                return 
$argv[$pos+1];
            }
        }
    }
    return 
false;
}