Perl en Español

  1. Home
  2. Tutoriales
  3. Foro
  4. Artículos
  5. Donativos
  6. Publicidad
 
Índice general » Mundo Perl » Intermedio » [IRC]Bot que responda Responder al tema
Nuevo tema


Página 2 de 2  [ 29 mensajes ]  Ir a página Anterior  1, 2
 
Nota Vie Dic 11, 2009 9:30 am

Perlero Nuevo
Registrado: Mié Dic 09, 2009 2:13 pm
Mensajes: 9
Re: [IRC]Bot que responda
Ok, ya todo me salió bien y el bot obedece, gracias.

Saludos.


Nota Sab Dic 12, 2009 7:35 pm
Avatar de Usuario
Administrador
Registrado: Dom Jul 24, 2005 6:12 pm
Ubicación: Valladolid, España
Mensajes: 9518
Re: [IRC]Bot que responda
Este es un bot que me he hecho en un rato, con Bot::BasicBot.

Syntax: [ Download ] [ Hide ]
Using perl Syntax Highlighting
  1. #!/usr/bin/perl
  2. use strict;
  3. use warnings;
  4. use diagnostics;
  5.  
  6. our $admin = 'jferrero';
  7. our $nick  = 'perla';
  8.  
  9. Bot->new(
  10.     channels => [ '#perlenespanol' ],
  11.     nick     => $nick,
  12.     server   => 'irc.freenode.org',
  13. )->run;
  14.  
  15. package Bot;
  16. use base qw(Bot::BasicBot);
  17.  
  18. sub said {
  19.     my $self    = shift;
  20.     my $message = shift;
  21.     my $body    = $message->{body};
  22.     my $who     = $message->{who};
  23.     my $address = $message->{address} || '';
  24.  
  25.     if ($address) {
  26.         if ($address eq 'msg') {
  27.             $address = $nick;
  28.         }
  29.         $body = "$address, $body";
  30.     }
  31.  
  32.     print "[$body|$address]\n";
  33.  
  34.     sleep 1+rand(3);
  35.  
  36.     if ($body =~ /(?:^|\b)$nick\b/i) {                        # solo dirigido a nosotros              
  37.  
  38.         # Saludo
  39.         if ($body =~ /hola/i) {
  40.             $self->reply($message, "Hola, $who");
  41.         }
  42.        
  43.         elsif ($body =~ /sabes perl\?/i) {
  44.             $self->reply($message, "un poco...");
  45.         }
  46.  
  47.         # Es un robot
  48.         if ($body =~ /\b(?:ro)?bot\b/i) {
  49.             if (rand() < 0.8) {
  50.                 $self->reply($message, "no");
  51.             }
  52.             else {
  53.                 $self->reply($message, "que no!");
  54.             }
  55.            
  56.             if (rand() > 0.95) {
  57.                 $self->reply($message, ":)");
  58.             }
  59.         }
  60.  
  61. #        if ($who eq $admin) {
  62.         if ($body =~ /\bdime\b.*?([\d()\/+*-]+)/i) {
  63.             print "Operacion: [$1]: ", eval($1),"\n";
  64.             $self->reply($message, eval($1));
  65.         }
  66. #        }
  67.     }
  68.     else {
  69.         print "No dirigido a nosotros\n";
  70.     }
  71.  
  72.     return undef;
  73. }
  74. __END__


El bot responde al saludo, insiste en decir que no es robot, y responde a cuestiones matemáticas si se incluye antes la palabra 'dime'.

_________________
JF^D Perl programming


Nota Dom Dic 13, 2009 4:16 am

Perlero Nuevo
Registrado: Dom Dic 13, 2009 1:54 am
Mensajes: 1
Bot IRC Perl
Hola, buenas noches.

Quisiera pedir un poco de ayuda ya que estoy en mis inicios de Perl y ando algo complicado con el código de mi primera bot.

Resulta que quiero meterle una funciones para que cuando tire comandos, por ejemplo !hex Hola me de el texto traducido a hexadecimal, al igual que agregar respuestas automáticas; por ejemplo, cuando alguien diga Hola el bot automáticamente responda Hola, "Nick" o que alguien diga dime 354354 y el bot diga el número 354354; también le quiero agregar funciones matemáticas, por ejemplo, Binario, suma de binarios, Descrytar Hash y ese tipo de cosas, pero la cuestión es que no sé cómo implementarlo en el código que estoy haciendo. Si me pueden ayudar sería espectacular.

De antemano, gracias.
Syntax: [ Download ] [ Hide ]
Using perl Syntax Highlighting
  1. #!/usr/bin/perl
  2. ##############################################
  3. # PROGRAMA: DA-VINCI BOT.v.0.1               #
  4. # AUTOR:    [[Ktosh]]                        #
  5. # GRACIAS A: Yoyahack, seth y S[e]C          #
  6. ##############################################
  7.  
  8.  
  9. #---------------------------------Modulos del Bot--------------------------------------#
  10. use IO::Socket;
  11.  
  12. #---------------------------------Datos principales------------------------------------#
  13.  
  14. $server   = 'ircnode.com';
  15. $port     = '6667';
  16. $canal    = '#undersec';
  17.  
  18. #--------------------------------Datos Del Bot------------------------------------------#
  19. $nick = 'Prote0';
  20. $bot  = 'Prote0';
  21. $adm  = '[[Kt0sh]]';
  22. chomp $adm;
  23. ;
  24. #-------------------------------------Respuesta de Comandos----------------------------------#
  25. $help   = "Los comandos Disponibles son : !help, !hi";
  26. $hi     = "hola";
  27. #-------------------------------------Conexión de IO::Socket;-------------------------------#
  28.  
  29. my $sock = IO::Socket::INET ->new(
  30.                      PeerAddr => "$server",
  31.                      PeerPort => "$port",
  32.                      Proto    => 'tcp' ) || die "No hay coneción\n";
  33.  
  34. while(<$sock>){
  35.     my $datos = $_;                      
  36.     print $datos;                    
  37.    
  38.     if ($datos =~ /NOTICE AUTH/i)        
  39.     {      
  40.         &envia("NICK $nick \n");            
  41.         &envia("USER $bot x x x x\n");    
  42.     }
  43.     if ($datos =~ /^PING :/i)
  44.     {
  45.         &envia("PONG  : $'");
  46.     }
  47.     &envia("join $canal");
  48.  
  49. #-------------------------------------Creamos las Funciones---------------------------------#
  50. #:[[Kt0sh]]!
  51.     if ($datos =~ /^\:(\S*)!(\S*)@(\S*)\s(\S*)\s(\S*)\s:(\S*)\s(.*)/)
  52.     {
  53. #-------------------------------------Valores de Variables-----------------------------------#
  54.  
  55.         $usuario = $1;
  56.         chomp $usuario;
  57.         $tipo    = $4;
  58.         $donde   = $5;
  59.         $comando = $6;
  60.         $text    = $7;
  61.                
  62. #-------------------------------------Lector De Canal----------------------------------------#
  63.         if($comando eq "!help") {&msg("#undersec", $help);}
  64.         if($comando eq "!hi")   {&msg("#undersec", $hi);  }
  65.         if($comando eq "!hex")  {&msg("#undersec", $hex); }
  66.                
  67.     }
  68. }
  69.  
  70. #-------------------------------------Funciones----------------------------------------------#
  71. sub envia {print $sock "$_[0]\n";}
  72. sub msg {envia("PRIVMSG $_[0] :$_[1]");}


Última edición por explorer el Dom Dic 13, 2009 7:25 am, editado 3 veces en total
Ortografía, anglicismos


Nota Dom Dic 13, 2009 7:01 am
Avatar de Usuario
Administrador
Registrado: Dom Jul 24, 2005 6:12 pm
Ubicación: Valladolid, España
Mensajes: 9518
Re: Bot IRC Perl
Bienvenido a los foros de Perl en Español, kt0sh.

De ese tema hemos hablado hace poco... están publicados varios bots que funcionan, y son fáciles de modificar para que hagan lo que quieres, incluido uno basado en el mismo código tuyo.

_________________
JF^D Perl programming


Nota Jue Mar 11, 2010 1:05 pm

Perlero Nuevo
Registrado: Jue Mar 11, 2010 12:44 pm
Mensajes: 6
Re: [IRC]Bot que responda
Hola, soy nuevo en este foro, andaba buscando tutoriales o manuales de Perl para IRC en español y os encontré a vosotros por suerte.

Me gustaría comenzar un bot para IRC; sus funciones sería la de administrar canales oficiales de mi servidor.

Sus funciones serían las siguientes:

* Dar @ a los moderadores de la red
* Avisar por privado al usuario (normas de la sala)
* Avisar al debug de (spam, mayúsculas, colores, insultos... etc)
* Kickear y Banear si no hay mas @'s en la sala.
* Poner modos automáticamente en caso de no haber más @'s.

" Para comenzar haría esto"

Gracias de antemano.


Nota Jue Mar 11, 2010 1:22 pm
Avatar de Usuario
Administrador
Registrado: Dom Jul 24, 2005 6:12 pm
Ubicación: Valladolid, España
Mensajes: 9518
Re: [IRC]Bot que responda
Bienvenido a los foros de Perl en Español, DaNnY.

La idea es buena... pero robots para IRC ya hay unos cuantos... de hecho, creo que los propios servidores de IRC ya traen bots para este tipo de administración.

Un ejemplo de bot: Eggdrop.

Eso sí... hacerlo uno mismo es siempre bueno, ya que aprendes mucho de IRC y algo de programación... :)

Puedes probar a publicar tu código, en aquellas áreas en la que te atasques, para que podamos echarte una mano.

_________________
JF^D Perl programming


Nota Vie Mar 12, 2010 9:58 pm

Perlero Nuevo
Registrado: Jue Mar 11, 2010 12:44 pm
Mensajes: 6
Re: [IRC]Bot que responda
Gracias por la bienvenida al foro, la verdad es que ando un poco perdido...

Me sería de gran ayuda si me pudierais indicar con qué módulos tendría de empezar, y dónde podría mirar algún tutorial un tanto informativo, para poder empezar desde 0.

La verdad es que el eggdrop está bien pero prefiero hacerlo yo, como bien has dicho tu antes aprendes más.

Todos los bots que tenemos en mi red son hechos por el devel que tenemos y yo estoy intentando aprender un poco de Perl para poder ayudarle.

Como comenté anteriormente ahora mismo estamos comenzando a tener bastante visitas, y necesitaría que el bot pudiera soportar varias salas.

Todos los comandos se ejecutarían en un debug o por privado.
Además a los canales que podría entrar el BOT sería a través de la siguiente sintaxis: /msg CHaN LIST * OFICIAL, es decir: solo podría entrar a las salas que estuvieran en esta lista...
Sé que es un poco complicado de hacer cuando el nivel es nulo, pero ganas de aprender no me faltan.

P.D Utilizo Windows XP profesional.
¿Eso sería un problema?

Gracias de antemano.


Última edición por explorer el Sab Mar 13, 2010 7:32 am, editado 1 vez en total
Ortografía


Nota Sab Mar 13, 2010 8:10 am
Avatar de Usuario
Administrador
Registrado: Dom Jul 24, 2005 6:12 pm
Ubicación: Valladolid, España
Mensajes: 9518
Re: [IRC]Bot que responda
Aprender a programar robots en Perl para IRC necesita de los pasos siguientes:
* saber qué es y cómo funciona el protocolo IRC. En una tarde te lo aprendes
* saber lenguaje Perl, al menos su sintaxis básica. Con unos días de dedicación, te lo sabes
* saber qué es un módulo Perl. Cómo se instala, cómo se usa. Un par de tardes
* saber programar. Esto es lo más fácil y lo más difícil. Es fácil empezar a decirle al ordenador que haga cosas. Es muy difícil decírselo con exactitud, elegancia y, muy importante, de forma clara, tanto para el ordenador como para otra persona. Años.

No conozco manuales específicos para programar IRC, pero se lo preguntaría a Google.

Para Perl, tienes aquí, en este sitio web, algunos tutoriales, y algunos hilos donde hemos dado las claves para comenzar con el lenguaje, o recursos en Español repartidos por la red.

Se puede decir que podrás empezar a hacer el primer bot cuando entiendas los códigos que aparecen al principio de este hilo de discusión, aunque si miras el primer código de la segunda página, en el que uso el módulo Bot::BasicBot, verás que el código es más corto, y quizás, sencillo de entender.

En cuanto a lo de Windows, lo siento, pero hace muchos años que ya no lo uso.

_________________
JF^D Perl programming


Nota Dom Mar 14, 2010 10:58 am

Perlero Nuevo
Registrado: Jue Mar 11, 2010 12:44 pm
Mensajes: 6
Re: [IRC]Bot que responda
Buenas, he avanzado un poco... pero me quedo atascado con los comandos por privado, no sé por dónde tirar, estuve modificando y mirándome el posteo del bot que pusiste tu Administrador lo único que no sé cómo ejecutar los comandos por privado y restringir los comandos a ciertos privilegios.


Nota Dom Mar 14, 2010 11:06 am
Avatar de Usuario
Administrador
Registrado: Dom Jul 24, 2005 6:12 pm
Ubicación: Valladolid, España
Mensajes: 9518
Re: [IRC]Bot que responda
Sin ver el código, es difícil saber qué pasa...

_________________
JF^D Perl programming


Nota Dom Mar 14, 2010 4:56 pm

Perlero Nuevo
Registrado: Jue Mar 11, 2010 12:44 pm
Mensajes: 6
Re: [IRC]Bot que responda
Syntax: [ Download ] [ Hide ]
Using perl Syntax Highlighting
  1. # (mismo código que el publicado por kt0sh el día 2009-12-13 10:16 @470
  2.  


Nota Dom Mar 14, 2010 7:08 pm
Avatar de Usuario
Administrador
Registrado: Dom Jul 24, 2005 6:12 pm
Ubicación: Valladolid, España
Mensajes: 9518
Re: [IRC]Bot que responda
Has publicado el mismo código que aparece en un mensaje anterior, en este mismo hilo (incluso en esta misma página). Sería más cómodo indicarlo, en lugar de copiarlo de nuevo.

Te indico que el código creo (no lo he probado) que está mal, pues en la línea 47 intenta entrar en el canal. Como esa línea está dentro de un bucle que empieza en la 34, con lo que el bot está constantemente registrándose en el canal.

En cuanto a la forma de que el bot responda a comandos, desde determinadas personas, fíjate cómo en la línea 51 se separan los componentes de la línea recibida desde el servidor IRC. De ahí sabemos el $usuario, y el $comando que ha escrito. Solo tenemos que hacer una comprobación, parecida a esta, para responderle:

Syntax: [ Download ] [ Hide ]
Using perl Syntax Highlighting
if ($usuario eq 'Administrador') {
    if ($comando eq '!list') {
        # devolver la lista de usuarios al Administrador
    }
}

que como ves es parecida a las líneas 63 a 65 o la mayor parte de las líneas que hay en mi bot, unos mensajes más arriba, del día 2009-12-13 01:35 @107.

_________________
JF^D Perl programming


Nota Sab Mar 27, 2010 3:00 pm

Perlero Nuevo
Registrado: Jue Mar 11, 2010 12:44 pm
Mensajes: 6
Re: [IRC]Bot que responda
Después de unos cuantos días, pude avanzar un poco el código aunque hay que depurarlo un poco.

Syntax: [ Download ] [ Hide ]
Using perl Syntax Highlighting
  1. #!/usr/bin/perl
  2. ###################################################
  3. # PROGRAMA: Administrador BOT.v.0.1               #
  4. # AUTOR: DaNnY                                    #
  5. # GRACIAS A:  [[Ktosh]] Yoyahack, seth y S[e]C    #
  6. # El bot original es obra de [[ktosh]]            #
  7. # Este bot es una adaptacion de su codigo         #
  8. # espero que no le imporque que lo alla utilizado #
  9. ###################################################
  10.  
  11.  
  12. #---------------------------------Modulos del Bot--------------------------------------#
  13. use IO::Socket;
  14.  
  15. #---------------------------------Datos principales------------------------------------#
  16.  
  17. $server   = 'deneb.gentechat.org';
  18. $port     = '6667';
  19. $canal    = '#pruebas';
  20. $debug    = '#c.debug';
  21. #%usuario = "";@topic = "Bienvenido/a a $canal Porfavor plantee su duda por privado a $nick $+ . Si este no se encuentra disponible Acuda a un (@) de la Sala, Gracias.";
  22.  
  23.  
  24.  
  25. #--------------------------------Datos Del Bot------------------------------------------#
  26. $nick = 'Administrador';
  27. $bot  = 'Administrador';
  28. $pass = 'zipbreake';
  29. $admin  = 'zipbreake';
  30. $root = 'DaNnY';
  31. chomp $admin;
  32. chomp $root;
  33. ;
  34. #-------------------------------------Respuesta de Comandos----------------------------------#
  35. while($responde = <$comandos>)
  36. {
  37. print $responde;
  38. #join $canal
  39.      if($responde =~ m/:(.*) 00(.*) (.*) :/)
  40.      {
  41.           print $responde "JOIN $canal \r\n";
  42.          }
  43. if($responde =~ m/:!ayuda/)
  44.          {
  45.          print $responde &envia" $usuario :1 5-= Información General =-  \r\n";
  46.          print $responde &envia" $usuario :1 3Administrador - 7IRC-GenteChat  \r\n";
  47.          print $responde &envia" $usuario :1 3Administrador Permite controlar varios aspectos de las salas Oficiales.  \r\n";
  48.          print $responde &envia" $usuario :1 Su principal función es la de moderar las salas oficiales, administrar modos automaticamente  \r\n";
  49.          print $responde &envia" $usuario :1 e informar a los OPERadores de un posible ataque de clones en la sala. : \r\n";
  50.          print $responde &envia" $usuario : \r\n";
  51.          print $responde &envia" $usuario :1 Los comandos disponibles son los siguientes: \r\n";
  52.          print $responde &envia" $usuario :1
  53. Para utilizar el BOT de 3Administrador escriba 12/msg Administrador <comando>. \r\n";
  54.          print $responde &envia" $usuario :1 Para obtener más información de un comando específico escriba: 12/msg Administrador AYUDA <comando> \r\n";
  55.          print $responde &envia" $usuario : \r\n";
  56.          print $responde &envia" $usuario :1 - 12 Comandos Basicos: \r\n";
  57.          print $responde &envia" $usuario : \r\n";
  58.          print $responde &envia" $usuario :12IDENTIFY Te identifica como OPERador de la sala. \r\n";
  59.          print $responde &envia" $usuario :12LEVELS Modificas los niveles de ACCESo al BOT. \r\n";
  60.          print $responde &envia" $usuario : \r\n";
  61.          print $responde &envia" $usuario : - Acceso y configuración al canal: \r\n";
  62.          print $responde &envia" $usuario :12JOIN Entra en una Sala sin guardarla en la Base de datos \r\n";
  63.          print $responde &envia" $usuario :12PART Sale de una sala \r\n";
  64.          print $responde &envia" $usuario :1JOINALL Entra en todas las salas guardadas en la Base de datos \r\n";
  65.          print $responde &envia" $usuario :1PARTALL Sale de todas las salas \r\n";
  66.          print $responde &envia" $usuario :12NORMAS Muestra las normas de la sala en su sala. \r\n";
  67.          print $responde &envia" $usuario :12BOTS   Información sobre los BOTS. \r\n";
  68.          print $responde &envia" $usuario :12MoDOS  Muestra los modos disponibles a usar atraves del BOT. \r\n";
  69.          print $responde &envia" $usuario :12CONTACTO Te muestra como ponerse en contacto con la Administración del BOT. \r\n";
  70.          print $responde &envia" $usuario :  \r\n";
  71.          print $responde &envia" $usuario :12OP 1Te da 1(4@1) en la sala especificada \r\n";
  72. }        
  73.  
  74. $saludo    = "hola $usuario comando SALUDO ejecutado correctamente ^^ OLE YO <img src="http://perlenespanol.com/foro/images/smilies/icon_biggrin.gif" alt=":D" title="Very Happy" />";
  75. #-------------------------------------Conexión de IO::Socket;-------------------------------#
  76.  
  77. my $sock = IO::Socket::INET ->new(
  78.                      PeerAddr => "$server",
  79.                      PeerPort => "$port",
  80.                      Proto    => 'tcp' ) || die "No hay conección porfavor intentelo en otro servidor.\n";
  81. if (!$sock) {
  82. print "\nLo siento $root No puedo conectar en  $servidor $port\n";
  83. exit 1;
  84. }
  85.  
  86. while(<$sock>){
  87.     my $datos = $_;                      
  88.     print $datos;    
  89.    
  90.                    
  91.     if ($datos =~ /NOTICE AUTH/i)        
  92.     {      
  93.         &envia("NICK ".$nick."!".$pass." \n");            
  94.         &envia("USER $bot x x x x\n");    
  95.     }
  96.  print $sock "NICK $nick \n";
  97.  
  98.  
  99.     if ($datos =~ /^PING :/i)
  100.     {
  101.         &envia("PONG  : $'");
  102.     }
  103.     &envia("join $canal");
  104.     &envia("join $debug");
  105.  
  106. #-------------------------------------Creamos las Funciones---------------------------------#
  107. #:$root!
  108.     if ($datos =~ /^\:(\S*)!(\S*)@(\S*)\s(\S*)\s(\S*)\s:(\S*)\s(.*)/)
  109.     {
  110. #-------------------------------------Valores de Variables-----------------------------------#
  111.  
  112.         $usuario = $1;
  113.         chomp $usuario;
  114.         $tipo    = $4;
  115.         $donde   = $5;
  116.         $comando = $6;
  117.         $text    = $7;
  118.                
  119. #-------------------------------------Lector De Canal----------------------------------------#
  120.         if($comando eq "help") {&msg("$usuario", $comandos);}
  121.         if($comando eq "ayuda") {&msg("$usuario", $comandos); }
  122.         if($comando eq "saluda")   {&msg("#pruebas", $saludo);  }
  123.         if($comando eq "hex")  {&msg("#pruebas", $hex); }
  124.         if($comando eq "op") {&msg("$active", "CHaN OP $canal $usuario"); }
  125.        
  126.        
  127.                
  128.     }
  129. }
  130.  
  131. #-------------------------------------Funciones----------------------------------------------#
  132. sub envia {print $sock "$_[0]\n"; }
  133. sub msg {envia("PRIVMSG $_[0] :$_[1]"); }
  134. #-----------------------------------------------------------------------
  135.  


Nota Mié Abr 21, 2010 3:40 pm

Perlero Nuevo
Registrado: Jue Mar 11, 2010 12:44 pm
Mensajes: 6
Re: [IRC]Bot que responda
Syntax: [ Download ] [ Hide ]
Using perl Syntax Highlighting
  1. #!/usr/bin/perl
  2. use IO::Socket;
  3. require "bot.conf";
  4. ####################################### COMANDOS IMPLEMENTADOS #############################
  5. $priv_cmds  = \%comandos;
  6. $priv_cmds -> {"HELP"} = "do_help";
  7.  
  8. $chan_cmds  = \%chancmds;
  9. $chan_cmds -> {"!HELP"} = "do_chanhelp";
  10. ####################################### FIN ################################################
  11. #######################    RUTINAS GENERALES (conexión....)  #
  12. #######################
  13. $socket = IO::Socket::INET->new(Proto => "tcp",
  14.                                 PeerAddr => $servidor,
  15.                                 PeerPort => $puerto);
  16. $socket -> autoflush(1);
  17. print "Bot Conectado\n";
  18. if (fork()) { exit;
  19.  }
  20. $entrabot = 0;
  21. while (($linea = <$socket>)) {
  22. #print $linea;
  23. if ($entrabot == 0) {
  24. sendcmd("NICK $botnick:$botclave\n");
  25.         sendcmd("USER $botident - - :$botinfo\n");
  26.                 $entrabot++;
  27.         }
  28. while (<$socket>) { @space = split("",$_);
  29. @dots = split(":",$_);
  30. @chanel = split(" ",$dots[2]);
  31. @u = split("!",$_);
  32. @nicks = split(":",$u[0]);
  33. @raw_num = split(" ",$_);
  34. @puntos = split(":",$_);
  35. print $linea "JOIN $canal_ayuda\n";
  36. print "<-" . $_;
  37. #print "test->" . $space[0] . " dots " . $dots[1] . "\n";";
  38.         if ($space[0] eq "PING")        {       print $linea "PONG " . $dots[1] . "\n";
  39.         print "->PONG :". $dots[1] . "\n";  
  40.         }              
  41. if ($space[1] eq "JOIN" && $nicks[1] eq $nick && $chanel[0] eq $canal_ayuda)    {
  42.         &topic("$canal_ayuda","@topic");
  43.         print $linea "JOIN $canal_opers \n";
  44.         }
  45.  #fin del if join
  46.         if ($space[1] eq "PRIVMSG" && $space[2] eq $nick)       {
  47.         my $dentro = exists $entra{$nicks[1]};
  48.                 if ($dentro == 1)               {      
  49.         @mensaje = split(" ",$dots[2]);        
  50. my $existe = exists $gente{$nicks[1]}; 
  51.                 if ($existe == 0)      
  52.                 {                      
  53. print $linea "PRIVMSG $nicks[1] :Su mensaje a sido enviado, en unos momentos sera atendido, gracias. \n";
  54.                         @rand_list = keys(%opers_activos);
  55.                         $numero = @rand_list;  
  56.                         if ($numero >= 1)                               {      
  57.                         $azar = rand($numero);                 
  58.         print $sock "PRIVMSG  $rand_list[$azar] :El usuario $nicks[1] tiene el mensaje : @mensaje \n";                          }                               elsif ($numero <= 0)                            {                               print $sock "PRIVMSG $canal_opers :El usuario $nicks[1] tiene el mensaje : @mensaje \n";                                $gente{$nicks[1]}="1";                          }                       }               }       }       if ($space[1] eq "JOIN" && $nicks[1] ne $nick && $chanel[0] eq $canal_ayuda)    {       print $sock "MODE $canal_ayuda +v $nicks[1] \n";        print $sock "PRIVMSG $nicks[1] :Hola $nicks[1] , Soy $nick , el encargado de ponerte con un operador. Describa brevemente su problema \n";      $entra{$nicks[1]}="$chanel[0]"; }       if ($space[1] eq "PART" && $space[2] eq $canal_ayuda)   {       delete($gente{$nicks[1]});      }       if ($space[1] eq "PRIVMSG" && $space[2] eq $canal_opers)        {       @escucha = split(" ",$dots[2]);         if ($escucha[0] eq activo)              {               $activo = exists $opers_activos{$nicks[1]};                     if ($activo == 0)                       {                               $opers_activos{$nicks[1]}="1";                  &informa("1","$nicks[1]");                                      }                       elsif ($activo == 1)                    {                       &error("1","$nicks[1]");                        }               }               if ($escucha[0] eq desactivo)           {
  59.                 $desactivo = exists $opers_activos{$nicks[1]}; 
  60.                 if ($desactivo == 1)           
  61.         {                       delete($opers_activos{$nicks[1]});     
  62.                 &informa("2","$nicks[1]");                      }
  63.                         elsif ($desactivo == 0)
  64.         {      
  65.                 &error("2","$nicks[1]");
  66. }
  67.                 }      
  68.         if ($escucha[0] eq lista)               {
  69.                         @lista_temp = keys(%opers_activos);                     {      
  70. print $linea "PRIVMSG $canal_opers :Operadores activos :@lista_temp \n";       
  71.                 }      
  72.         }      
  73. }
  74. sub error{     
  75. if ($_[0] == 1) {
  76.         print $linea "PRIVMSG $canal_opers :$_[1] Error Ya estas activo como OPERador \n";      }
  77.         elsif ($_[0] == 2)      {
  78.         print $linea "PRIVMSG $canal_opers : $_[1] Error Lo siento NO estas en la lista \n";
  79.         }
  80. }
  81. sub informa{
  82.         if ($_[0] == 1) {      
  83.         print $linea "PRIVMSG $canal_opers :$_[1] Se añadido a la lista con exito \n";
  84.         }       elsif ($_[0] == 2)      {
  85.         print $linea "PRIVMSG $canal_opers :$_[1] Se le borro de la lista con exito \n";        }
  86. }
  87. #sub join #{#}
  88. #join fin
  89.  #sub nick#{#}
  90.  #nick fin
  91.  #sub canal#{#}
  92.  #canal fin
  93.  sub whois{}
  94. #whois fin
  95.  #sub raw#{#}
  96. #raw fin
  97. sub topic { print $linea "TOPIC $_[0] $_[1] \n"; }



Syntax: [ Download ] [ Hide ]
Using text Syntax Highlighting
########################################################
##########   CONFIGURACION  Bot Perl ###################
########## 2001-2009 Javier Fernández Viña (ZipBreake) #    
########## javier@jfv.es - http://jfv.es #
##############
########################################################

######### CONFIGURAcION SERVIDOR ############
$servidor = "deneb.gentechat.org";
$puerto = "6667";    
################## FIN ######################
######### CONFIGURACION BOT #################
$botnick = "Administrador";
$botclave = "zipbreake";
$botident = "Servicios";
$botinfo = "Guardian";
############## FIN ##########################
######## CONFIGURACION SALAS ################
$canal = "#salas";
############## FIN ##########################
####### CONFIGURACION OTRAS SALAS ###########
$canal_ayuda = "#ayuda";
$canal_opers = "#pruebas";
############## FIN ##########################
###### CONFIGURACION USUARIOS ###############
$root = "DaNnY";
############## FIN ##########################
####### CONFIGURACION DE VARIABLES ##########
%gente = "";@topic = "Bienvenid\@s a $canal_ayuda Plantea tu duda por Privado a $nick o bien en caso de estar algun @ disponible en el General";
############## FIN ##########################



3  [[ AYUDA DEL BOT ]]  
5-= ADMINISTRADOR =-
 
 
- Ayuda rápida:
 
+ 12/msg ADMINISTRADOR <comando>. Para utilizar el comando.
+ 12/msg ADMINISTRADOR <comando> Para más información.
 
 - Comandos de gestión:
 12AVISO    Modificas la lista de Avisos a realizar en la sala.
 12KICK     Expulsas a un usuario atraves de Administrador
 12BAN      Baneas la host ident y nick de un usuario.
 12REGISTRO Das Acceso al bot como Usuario ( +v )
   - Comandos de Moderación:
 12OP       Le das poderes de (@) Moderador a un usuario ( SIN REGISTRO )
 12VOZ      Le das poderes de (+) Si el canal esta Moderado puede hablar.
 12ON       Te activas como OPERador en general
 12OFF      Te ausentas como OPERador de la sala especifica
 12AWAY     Te ausentas como OPERador de todas las salas
   - Comandos de Operador:
 12ONOTICE  Manda un Notice a todos los Operadores (@) de la sala
 12NORMAS   Muestra las Normas en la sala indicada
 12MASSKICK Comando para la expulsión de CLONES

4NOTA: Este BOT es un SERVICIO ofrecido unicamente por GenteChat IRC Network. Su función es ayudar a moderar las salas principales.

 - COMANDOS para el ROOT:
  + Comandos de Gestión :
 12IDENTIFY    Te identificas como ROOT del BOT
 12ADMIN       Administras la lista de ADMINS del BOT
 12OPER        Administras la lista de OPERS del BOT  
 12MODERADOR   Administras la lista de MODERADORES del BOT
 - Comandos de Salas :
 12JOIN        Haces que el BOT entre en la sala indicada    
 12PART        Haces que el BOT salga de la sala indicada
 12JOINALL     El BOT entra en todas las salas guardadas en la BD
 12PARTALL     El BOT sale Automaticamente de todas las salas. Nota: No sale de la Sala DEBUG del BOT.
 12MODO        Cambias los modos del BOT
 12CMODO       Haces que el BOT cambie los modos en la sala especificada
 12IGNORE      Añades a un usuario en la lista negra del BOT
 - Comandos de Configuración de Accesos :
 12SET      Modificas los ACCESOS al BOT
 12UNSET    Modificas los ACCESOS al BOT
 12RESET    Reseteas los Niveles de ACCESO al BOT
 12QUIT     El BOT sale de la red por defecto.
 12RESTART  El BOT Sale y re-entra a la RED por defecto.
 12EXIT     Sale de la RED forzadamente y Cierra el programa.
 4Fin de la Ayuda

Ayuda del Bot
   !AYUDA - Solo respondo a privados. Perdonen las molestias.
Fin de la ayuda.


Necesitaría que alguien me corrigiera el código fuente porque no deja de darme "panic" y no sé por qué motivo me pasa eso.

Administrador, si puede, por favor, le agradecería su colaboración.


Responder al tema  [ 29 mensajes ]  Ir a página Anterior  1, 2

Reglas del Foro
No puedes abrir nuevos temas en este Foro
No puedes responder a temas en este Foro
No puedes editar tus mensajes en este Foro
No puedes borrar tus mensajes en este Foro
No puedes enviar adjuntos en este Foro

Publicidad

Socializa

Síguenos por Twitter

Suscríbete GRATUITAMENTE al Boletín de Perl en Español

Saltar a:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Traducción al español por Huan Manwë para phpbb-es.com
phpBB SEO