Re: [hm] [OT] irc-bot moderador

2009-09-22 Por tema d1d4c

Ruben Pollan escribió:

Si, hay muchas formas de convertir el bot en un dinamizador. Pero la duda que me
surge a veces es: ¿la tecnología nos simplifica la vida o nos la complica? Si
añado esas funcionalidades al bot ¿no lo hara tan complejo que al final es mas
una molestia que una ayuda?


Si no supieras ir en bici, es una bici un aparato que te complica la 
vida? Depende de la curva de aprendizaje, y de si es divertido o no 
aprender a usarla.



Creo que es mejor con el uso ir añadiendole poco a poco funcionalidades que
veamos necesarias, a añadirle un sinfín de funcionaliades nunca usadas que nos
compliquen la cosa.


Si nunca se usan, en qué nos complican nada? En todo caso, estoy de 
acuerdo contigo, mejor poco a poco, si eso.



Yo tengo pocas horas de rodaje en el irc, así que no tengo muy claro que cosas
habría que loguear y que sintaxis es mas comoda. Tu d1d4c, que me imagino que lo
tendrás mas claro, ¿me puedes enviar un ejemplo o/y una descripción de lo que
habría que loguear?


Te contesto en privado, que me da hasta palo ya, escribir aquí...

___
HackMeeting mailing list
HackMeeting@listas.sindominio.net
https://listas.sindominio.net/mailman/listinfo/hackmeeting


Re: [hm] [OT] irc-bot moderador

2009-09-18 Por tema David Francos Cuartero (XayOn)
El día 18 de septiembre de 2009 09:33, Antonio Pardo
apa...@sindominio.net escribió:
 Buenas,

 Ruben Pollan escribió:
   Lo de que recopile el log lo había pensado, pero decidí hacerlo
 publico y ver si
 había interes antes de añadirle mas funcionalidades. De momento me encargaré 
 de
 que guarde el log en un fichero, para subirlo al wiki habrá que empoyarse los
 modulos de perl+mediawiki a ver si es fácil.
Por cierto, se me olvido preguntarte que tipo de bot es, y que plugins
quereis hacer.
Me molan los plugins de gozerbot, y ya he hecho unos cuantos.

 ¿qué tal la funcionalidad de que cada 24 horas envie por correo el log
 del IRC del día a la lista, quitando los joins, quits, etc...?

-- 
http://thexayon.wordpress.com

Que la fuerza os acompañe.

-BEGIN GEEK CODE BLOCK-
Version: 3.12
GCS dpu s: a--- C UL P L+++ E--- W+++ N+++ o+ K- w---
O M+ V- PS+ PE+++ Y PGP++ t--- 5 X+++ R tv+++ b DI--- D+++
G+ e- h++ r+++ y
--END GEEK CODE BLOCK--

--XayOn--

Linux registered user #446872
___
HackMeeting mailing list
HackMeeting@listas.sindominio.net
https://listas.sindominio.net/mailman/listinfo/hackmeeting


[hm] [OT] irc-bot moderador

2009-09-14 Por tema Ruben Pollan
Leyéndome los logs de las asambleas por irc se me ha ocurrido que el papel del
moderador es bastante fácil de suplir con un bot. Para lo que he escrito el bot
que va adjunto a este email.

El bot se encarga de recoger las peticiones de palabra (/me pide palabra) y
asignar palabras en orden esperando a que termine de hablar (indicado con un
.) el interlocutor. Ademas le he añadido, no se si de verdad es útil, la
opción de pedir frases, que te dan voz mas prioritaria, pero para decir un
único mensaje.

Sería fácil de adaptarlo para que quitara y diera voz a los que tienen la 
palabra, pero he pensado que mientras las asambleas no sean un caos con todo el
mundo teniendo voz es mejor que no lo haga.

Este bot solo se encarga del moderador, todavía sería necesario el dinamizador y
alguien que guarde el log. Pero si se le da uso lo puedo ampliar para que cumpla
alguna de estas funciones.

Perdonad los que sepáis de perl y os parezca guarro, llevo pocas horas de rodaje
en perl.


-- 
Rubén Pollán  | jabber:mes...@jabber.org
   http://vagamundo.cauterized.net/
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
Lo hago para no volverme loco cuando noto
que solo me queda un demonio en un hombro
por que se ha cortado las venas
el ángel que había en el otro.
#!/usr/bin/perl
# Este es un Bot de IRC preparado para hacer de moderador en asambleas

use warnings;
use strict;
use POE;
use POE::Component::IRC;
use Getopt::Long;


# información de conexion
my $nickname = 'moderador';
my $username = 'moderador';
my $ircname  = 'El sumo moderador';
my $server   = 'irc.freenode.net';
my $port = '6667';
my $channel  = '#hackmeeting';

# textos
my $welcome = /me pide la palabra para esperar turno para hablar
/me pide frase para pedir frase
tu turno de palabra termina cuando escribes un mensaje con .
tu turno de frase te permite enviar un solo mensage, pero tienes prioridad.;
my $msg  = '';
my $help;

# orden de palabras y frases pedidas
my @palabras = ();
my @frases = ();
my $fue_frase = 2; # bool indica si la última peticion era frase, 2 indica que nadie esta hablando

# regexp de los comandos
my $palabra = '.*palabr.';
my $fin_escritura = '^\.$';
my $frase = '.*frase.*';


# parsear los parametros
usage() if ( ! GetOptions('help|h'  = \$help,
		  'nick|n=s'= \$nickname,
		  'user|u=s'= \$username,
		  'irc|i=s' = \$ircname,
		  'server|s=s'  = \$server,
		  'port|p=s'= \$port,
		  'channel|c=s' = \$channel,
		  'msg|m=s' = \$msg)
			or defined $help );
sub usage {
	print usage: moderador [--nick|-n nickname] [--user|-u username] [--irc|-i ircname] [--server|-s server] [--port|-p port] [--channel|-c channel] [--msg|-m mensage] [--help|-h]\n;
	exit;
}

print Iniciando conexión..\n;

# Crea el componente de IRC
my ($irc) = POE::Component::IRC-spawn();

# Crea la sesión, indicandole los eventos que queremos que atienda
POE::Session-create(
  inline_states = {
_start = \bot_start,
irc_001= \on_connect,
irc_public = \on_public,
	irc_join   = \on_join,
	irc_nick   = \on_nick,
	irc_part   = \on_part,
	irc_quit   = \on_part,
	irc_ctcp_action   = \on_me,
  },
);


# Al iniciar la sesion, conectarse al servidor
sub bot_start {
  $irc-yield(register = all);
  $irc-yield(
connect = {
  Nick = $nickname,
  Username = $username,
  Ircname  = $ircname,
  Server   = $server,
  Port = $port,
}
  );
  print Conectado a: $server\n;
}

# Una vez este conectado al servidor conectarse al canal y enviar mensaje
sub on_connect {
	$irc-yield(join = $channel);

	envia_texto($channel, $welcome);
	if ($msg)
	{
		envia_texto($channel, $msg);
	}
	print Conectado a: $channel\n;
}

# Interpretar los mensajes de los usuarios
sub on_public {
  my ($kernel, $who, $where, $msg) = @_[KERNEL, ARG0, ARG1, ARG2];
  my $nick= (split /!/, $who)[0];

  if ($fue_frase == 1) {
	  if ($nick eq $frases[0]) {
		  shift(@frases);
		  asignar_voz();
	  }
  } elsif ($fue_frase == 0) {
	  if (($msg =~ /$fin_escritura/) and ($nick eq $palabras[0])) {
		  shift(@palabras);
		  asignar_voz();
	  }
  }
}

# Enviar mensage de info cuando se conecte alguien nuevo
sub on_join {
my ($kernel, $who, $where) = @_[KERNEL, ARG0, ARG1];
my $nick= (split /!/, $who)[0];

	envia_texto($nick, $welcome);
	if ($msg)
	{
		envia_texto($nick, $msg);
	}
}

# Cuando alguien cambia de nick hay que actualizar
sub on_nick {
  my ($kernel, $prev, $now) = @_[KERNEL, ARG0, ARG1];
  my $prev_nick= (split /!/, $prev)[0];
  my $now_nick= (split /!/, $now)[0];

  for (my $i = 0; $i  @palabras; $i++) {
	  if ($palabras[$i] eq $prev_nick) {
		  $palabras[$i] = $now_nick;
	  }
  }
  for (my $i = 0; $i  @frases; $i++) {
	  if ($frases[$i] eq $prev_nick) {
		  $frases[$i] = $now_nick;
	  }
  }
}

# Si se va pierde sus palabras
# FIXME: si me caigo y me reconecto también las pierdo
sub on_part {
  my ($kernel, $who) = @_[KERNEL, ARG0];
  my $nick= (split /!/, 

Re: [hm] [OT] irc-bot moderador

2009-09-14 Por tema elcalamartevigila
On 18:59, Mon 14 Sep 09, Ruben Pollan wrote:
 Leyéndome los logs de las asambleas por irc se me ha ocurrido que el papel del
 moderador es bastante fácil de suplir con un bot. Para lo que he escrito el 
 bot
 que va adjunto a este email.

jeje... me gusta esa actitud. justo nos estuvimos plantando si moderar asi no
era una cosa lo suficientemente estupida como para que pudiera hacerlo un bot,
pero estabamos un poco cansadas para hacerlo sobre la marcha.

subido a la wiki y archivado. solo queda testearlo un poco antes de usarlo.

(se volvera loco con un buffer overflow tu bot? podra adquirir conciencia
propia? Le llamamos HAL?)

salud.

-- 
abra  su mente al dinero,
venda su alma al capital.


signature.asc
Description: Digital signature
___
HackMeeting mailing list
HackMeeting@listas.sindominio.net
https://listas.sindominio.net/mailman/listinfo/hackmeeting