OVH Cloud OVH Cloud

probleme Net::IRC

5 réponses
Avatar
john.swilting
je suis en train de travailler sur un bot
je me suis base sur du code que j avais trouver sur google.groups

il ne fonctionne pas
j ai essayer le debugger mais je n y comprends rien

http://perso.wanadoo.fr/john.swilting/bot.tar.bz2

5 réponses

Avatar
john.swilting
john.swilting wrote:

je suis en train de travailler sur un bot
je me suis base sur du code que j avais trouver sur google.groups

il ne fonctionne pas
j ai essayer le debugger mais je n y comprends rien

http://perso.wanadoo.fr/john.swilting/bot.tar.bz2
je suis chez mon pere et ya le web je peux donc faire des test reseaux

ce que je voudrais c enregistrer la sortie du bot dans un fichier de log
j ai completement reecrit mon code pouvait vous m aider

#!/usr/bin/perl -w
use FileHandle;
use Net::IRC;
use strict;
# create the IRC object
my $irc = new Net::IRC;
my $fh = new FileHandle;
# Create a connection object. You can have more than one "connection" per
# IRC object, but we'll just be working with one.
my $conn = $irc->newconn(
Server => 'irc.freenode.com',
# Note: IRC port is normally 6667, but my firewall won't allow it
Port => '6665',
Nick => 'HelloBot',
Ircname => 'I like to greet!',
Username => 'hello'
);

# We're going to add this to the conn hash so we know what channel we
# want to operate in.
$conn->{channel} ='#paulla';

sub on_connect {

# shift in our connection object that is passed automatically
my $conn = shift;

# when we connect, join our channel and greet it
$conn->join($conn->{channel});
$conn->privmsg($conn->{channel}, 'Hello everyone!');
$conn->{connected} = 1;

}

sub on_join {

# get our connection object and the event object, which is passed
# with this event automatically
my ($conn, $event) = @_;

# this is the nick that just joined
my $nick = $event->{nick};
# say hello to the nick in public
$conn->privmsg($conn->{channel}, "Hello, $nick!");
}

sub on_part {

# pretty much the same as above

my ($conn, $event) = @_;

my $nick = $event->{nick};
$conn->privmsg($conn->{channel}, "Goodbye, $nick!");
}
# Handles some messages you get when you connect
sub on_init {
my ($conn, $event) = @_;
my (@args) = ($event->args);
shift (@args);

print "*** @argsn";
}
# What to do when we receive a private PRIVMSG.
sub on_msg {
my ($conn, $event) = @_;
my ($nick) = $event->nick;
my ($arg) = ($event->args);


print "*$nick* ", ($event->args), "n";
# $self->privmsg($nick, &pickrandom()); # Say a Zippy quote.
}
sub on_public {
my ($conn, $event) = @_;
my @to = $event->to;
my ($nick, $mynick) = ($event->nick, $conn->nick);
my ($arg) = ($event->args);

# Note that $event->to() returns a list (or arrayref, in scalar
# context) of the message's recipients, since there can easily be
# more than one.


}
sub on_umode {
my ($conn, $event) = @_;
my @to = $event->to;
my ($nick, $mynick) = ($event->nick, $conn->nick);
my ($arg) = ($event->args);

# Note that $event->to() returns a list (or arrayref, in scalar
# context) of the message's recipients, since there can easily be
# more than one.

print "<$nick> $argn";


}
sub on_chat {
my ($conn, $event) = @_;
my ($sock) = ($event->to)[0];

print '*' . $event->nick . '* ' . join(' ', $event->args), "n";
# $self->privmsg($sock); # Say a Zippy quote.
}
# Prints the names of people in a channel when we enter.
sub on_names {
my ($conn, $event) = @_;
my (@list, $channel) = ($event->args); # eat yer heart out, mjd!

# splice() only works on real arrays. Sigh.
($channel, @list) = splice @list, 2;

print "Users on $channel: @listn";
}
# Yells about incoming CTCP PINGs.
sub on_ping {
my ($conn, $event) = @_;
my $nick = $event->nick;

$self->ctcp_reply($nick, join (' ', ($event->args)));
print "*** CTCP PING request from $nick receivedn";
}

# Gives lag results for outgoing PINGs.
sub on_ping_reply {
my ($conn, $event) = @_;
my ($args) = ($event->args)[1];
my ($nick) = $event->nick;

$args = time - $args;
print "*** CTCP PING reply from $nick: $args sec.n";
}

# Change our nick if someone stole it.
sub on_nick_taken {
my ($conn) = shift;

$self->nick(substr($conn->nick, -1) . substr($conn->nick, 0, 8));
}
# Display formatted CTCP ACTIONs.
sub on_action {
my ($conn, $event) = @_;
my ($nick, @args) = ($event->nick, $event->args);

print "* $nick @argsn";
}

# Reconnect to the server when we die.
sub on_disconnect {
my ($conn, $event) = @_;

print "Disconnected from ", $event->from(), " (",
($event->args())[0], "). Attempting to reconnect...n";
$self->connect();
}

# Look at the topic for a channel you join.
sub on_topic {
my ($conn, $event) = @_;
my @args = $event->args();

# Note the use of the same handler sub for different events.

if ($event->type() eq 'notopic') {
print "No topic set for $args[1].n";

# If it's being done _to_ the channel, it's a topic change.
} elsif ($event->type() eq 'topic' and $event->to()) {
print "Topic change for ", $event->to(), ": $args[0]n";

} else {
print "The topic for $args[1] is "$args[2]".n";
}
}



print "Installing handler routines...";
# add event handlers for join and part events
$conn->add_handler('on_chat', &on_chat);
$conn->add_handler('umode', &on_umode);
$conn->add_handler('join', &on_join);
$conn->add_handler('part', &on_part);
$conn->add_handler('msg', &on_msg);
$conn->add_handler('public', &on_public);
$conn->add_handler('cping', &on_ping);
$conn->add_handler('crping', &on_ping_reply);
# The end of MOTD (message of the day), numbered 376 signifies we've connect
$conn->add_handler('376', &on_connect);
$conn->add_global_handler([ 251,252,253,254,302,255 ], &on_init);
$conn->add_global_handler('disconnect', &on_disconnect);
$conn->add_handler('cping', &on_ping);
$conn->add_handler('crping', &on_ping_reply);
$conn->add_handler('caction', &on_action);
$conn->add_handler('topic', &on_topic);
$conn->add_handler('notopic', &on_topic);
# start IRC
print " done.n";

print "starting...n";
$irc->start;
sub callback{
open ($fh ,">>$ENV{HOME}/log.txt") or die;
print $fh $irc;
}
while (1)
{
$irc->do_one_loop();
$|=1;
select($irc);
$irc->addfh($fh,&callback,"rw");

}

Avatar
john.swilting
john.swilting wrote:

john.swilting wrote:

je suis en train de travailler sur un bot
je me suis base sur du code que j avais trouver sur google.groups

il ne fonctionne pas
j ai essayer le debugger mais je n y comprends rien

http://perso.wanadoo.fr/john.swilting/bot.tar.bz2
je suis chez mon pere et ya le web je peux donc faire des test reseaux

ce que je voudrais c enregistrer la sortie du bot dans un fichier de log
j ai completement reecrit mon code pouvait vous m aider

#!/usr/bin/perl -w
use FileHandle;
use Net::IRC;
use strict;
# create the IRC object
my $irc = new Net::IRC;
my $fh = new FileHandle;
# Create a connection object. You can have more than one "connection" per
# IRC object, but we'll just be working with one.
my $conn = $irc->newconn(
Server => 'irc.freenode.com',
# Note: IRC port is normally 6667, but my firewall won't allow it
Port => '6665',
Nick => 'HelloBot',
Ircname => 'I like to greet!',
Username => 'hello'
);

# We're going to add this to the conn hash so we know what channel we
# want to operate in.
$conn->{channel} ='#paulla';

sub on_connect {

# shift in our connection object that is passed automatically
my $conn = shift;

# when we connect, join our channel and greet it
$conn->join($conn->{channel});
$conn->privmsg($conn->{channel}, 'Hello everyone!');
$conn->{connected} = 1;

}

sub on_join {

# get our connection object and the event object, which is passed
# with this event automatically
my ($conn, $event) = @_;

# this is the nick that just joined
my $nick = $event->{nick};
# say hello to the nick in public
$conn->privmsg($conn->{channel}, "Hello, $nick!");
}

sub on_part {

# pretty much the same as above

my ($conn, $event) = @_;

my $nick = $event->{nick};
$conn->privmsg($conn->{channel}, "Goodbye, $nick!");
}
# Handles some messages you get when you connect
sub on_init {
my ($conn, $event) = @_;
my (@args) = ($event->args);
shift (@args);

print "*** @argsn";
}
# What to do when we receive a private PRIVMSG.
sub on_msg {
my ($conn, $event) = @_;
my ($nick) = $event->nick;
my ($arg) = ($event->args);


print "*$nick* ", ($event->args), "n";
# $self->privmsg($nick, &pickrandom()); # Say a Zippy quote.
}
sub on_public {
my ($conn, $event) = @_;
my @to = $event->to;
my ($nick, $mynick) = ($event->nick, $conn->nick);
my ($arg) = ($event->args);

# Note that $event->to() returns a list (or arrayref, in scalar
# context) of the message's recipients, since there can easily be
# more than one.


}
sub on_umode {
my ($conn, $event) = @_;
my @to = $event->to;
my ($nick, $mynick) = ($event->nick, $conn->nick);
my ($arg) = ($event->args);

# Note that $event->to() returns a list (or arrayref, in scalar
# context) of the message's recipients, since there can easily be
# more than one.

print "<$nick> $argn";


}
sub on_chat {
my ($conn, $event) = @_;
my ($sock) = ($event->to)[0];

print '*' . $event->nick . '* ' . join(' ', $event->args), "n";
# $self->privmsg($sock); # Say a Zippy quote.
}
# Prints the names of people in a channel when we enter.
sub on_names {
my ($conn, $event) = @_;
my (@list, $channel) = ($event->args); # eat yer heart out, mjd!

# splice() only works on real arrays. Sigh.
($channel, @list) = splice @list, 2;

print "Users on $channel: @listn";
}
# Yells about incoming CTCP PINGs.
sub on_ping {
my ($conn, $event) = @_;
my $nick = $event->nick;

$self->ctcp_reply($nick, join (' ', ($event->args)));
print "*** CTCP PING request from $nick receivedn";
}

# Gives lag results for outgoing PINGs.
sub on_ping_reply {
my ($conn, $event) = @_;
my ($args) = ($event->args)[1];
my ($nick) = $event->nick;

$args = time - $args;
print "*** CTCP PING reply from $nick: $args sec.n";
}

# Change our nick if someone stole it.
sub on_nick_taken {
my ($conn) = shift;

$self->nick(substr($conn->nick, -1) . substr($conn->nick, 0, 8));
}
# Display formatted CTCP ACTIONs.
sub on_action {
my ($conn, $event) = @_;
my ($nick, @args) = ($event->nick, $event->args);

print "* $nick @argsn";
}

# Reconnect to the server when we die.
sub on_disconnect {
my ($conn, $event) = @_;

print "Disconnected from ", $event->from(), " (",
($event->args())[0], "). Attempting to reconnect...n";
$self->connect();
}

# Look at the topic for a channel you join.
sub on_topic {
my ($conn, $event) = @_;
my @args = $event->args();

# Note the use of the same handler sub for different events.

if ($event->type() eq 'notopic') {
print "No topic set for $args[1].n";

# If it's being done _to_ the channel, it's a topic change.
} elsif ($event->type() eq 'topic' and $event->to()) {
print "Topic change for ", $event->to(), ": $args[0]n";

} else {
print "The topic for $args[1] is "$args[2]".n";
}
}



print "Installing handler routines...";
# add event handlers for join and part events
$conn->add_handler('on_chat', &on_chat);
$conn->add_handler('umode', &on_umode);
$conn->add_handler('join', &on_join);
$conn->add_handler('part', &on_part);
$conn->add_handler('msg', &on_msg);
$conn->add_handler('public', &on_public);
$conn->add_handler('cping', &on_ping);
$conn->add_handler('crping', &on_ping_reply);
# The end of MOTD (message of the day), numbered 376 signifies we've
# connect
$conn->add_handler('376', &on_connect);
$conn->add_global_handler([ 251,252,253,254,302,255 ], &on_init);
$conn->add_global_handler('disconnect', &on_disconnect);
$conn->add_handler('cping', &on_ping);
$conn->add_handler('crping', &on_ping_reply);
$conn->add_handler('caction', &on_action);
$conn->add_handler('topic', &on_topic);
$conn->add_handler('notopic', &on_topic);
# start IRC
print " done.n";

print "starting...n";
$irc->start;
sub callback{
open ($fh ,">>$ENV{HOME}/log.txt") or die;
print $fh $irc;
}
while (1)
{
$irc->do_one_loop();
$|=1;
select($irc);
$irc->addfh($fh,&callback,"rw");

}


j ai change quelque petits truc mais ça marche toujours pas
#!/usr/bin/perl -w
use FileHandle;
use Net::IRC;
use strict;
# create the IRC object
my $irc = new Net::IRC;
my $fh = new FileHandle;
# Create a connection object. You can have more than one "connection" per
# IRC object, but we'll just be working with one.
my $conn = $irc->newconn(
Server => 'irc.freenode.com',
# Note: IRC port is normally 6667, but my firewall won't allow it
Port => '6665',
Nick => 'HelloBot',
Ircname => 'I like to greet!',
Username => 'hello'
);

# We're going to add this to the conn hash so we know what channel we
# want to operate in.
$conn->{channel} ='#paulla';

sub on_connect {

# shift in our connection object that is passed automatically
my $conn = shift;

# when we connect, join our channel and greet it
$conn->join($conn->{channel});
$conn->privmsg($conn->{channel}, 'Hello everyone!');
$conn->{connected} = 1;

}

sub on_join {

# get our connection object and the event object, which is passed
# with this event automatically
my ($conn, $event) = @_;

# this is the nick that just joined
my $nick = $event->{nick};
# say hello to the nick in public
$conn->privmsg($conn->{channel}, "Hello, $nick!");
}

sub on_part {

# pretty much the same as above

my ($conn, $event) = @_;

my $nick = $event->{nick};
$conn->privmsg($conn->{channel}, "Goodbye, $nick!");
}
# Handles some messages you get when you connect
sub on_init {
my ($conn, $event) = @_;
my (@args) = ($event->args);
shift (@args);

print "*** @argsn";
}
# What to do when we receive a private PRIVMSG.
sub on_msg {
my ($conn, $event) = @_;
my ($nick) = $event->nick;
my ($arg) = ($event->args);


print "*$nick* ", ($event->args), "n";
# $self->privmsg($nick, &pickrandom()); # Say a Zippy quote.
}
sub on_public {
my ($conn, $event) = @_;
my @to = $event->to;
my ($nick, $mynick) = ($event->nick, $conn->nick);
my ($arg) = ($event->args);

# Note that $event->to() returns a list (or arrayref, in scalar
# context) of the message's recipients, since there can easily be
# more than one.


}
sub on_umode {
my ($conn, $event) = @_;
my @to = $event->to;
my ($nick, $mynick) = ($event->nick, $conn->nick);
my ($arg) = ($event->args);

# Note that $event->to() returns a list (or arrayref, in scalar
# context) of the message's recipients, since there can easily be
# more than one.

print "<$nick> $argn";


}
sub on_chat {
my ($conn, $event) = @_;
my ($sock) = ($event->to)[0];

print '*' . $event->nick . '* ' . join(' ', $event->args), "n";
# $self->privmsg($sock); # Say a Zippy quote.
}
# Prints the names of people in a channel when we enter.
sub on_names {
my ($conn, $event) = @_;
my (@list, $channel) = ($event->args); # eat yer heart out, mjd!

# splice() only works on real arrays. Sigh.
($channel, @list) = splice @list, 2;

print "Users on $channel: @listn";
}
# Yells about incoming CTCP PINGs.
sub on_ping {
my ($conn, $event) = @_;
my $nick = $event->nick;

$conn->ctcp_reply($nick, join (' ', ($event->args)));
print "*** CTCP PING request from $nick receivedn";
}

# Gives lag results for outgoing PINGs.
sub on_ping_reply {
my ($conn, $event) = @_;
my ($args) = ($event->args)[1];
my ($nick) = $event->nick;

$args = time - $args;
print "*** CTCP PING reply from $nick: $args sec.n";
}

# Change our nick if someone stole it.
sub on_nick_taken {
my ($conn) = shift;

$conn->nick(substr($conn->nick, -1) . substr($conn->nick, 0, 8));
}
# Display formatted CTCP ACTIONs.
sub on_action {
my ($conn, $event) = @_;
my ($nick, @args) = ($event->nick, $event->args);

print "* $nick @argsn";
}

# Reconnect to the server when we die.
sub on_disconnect {
my ($conn, $event) = @_;

print "Disconnected from ", $event->from(), " (",
($event->args())[0], "). Attempting to reconnect...n";
$conn->connect();
}

# Look at the topic for a channel you join.
sub on_topic {
my ($conn, $event) = @_;
my @args = $event->args();

# Note the use of the same handler sub for different events.

if ($event->type() eq 'notopic') {
print "No topic set for $args[1].n";

# If it's being done _to_ the channel, it's a topic change.
} elsif ($event->type() eq 'topic' and $event->to()) {
print "Topic change for ", $event->to(), ": $args[0]n";

} else {
print "The topic for $args[1] is "$args[2]".n";
}
}



print "Installing handler routines...";
# add event handlers for join and part events
$conn->add_handler('on_chat', &on_chat);
$conn->add_handler('umode', &on_umode);
$conn->add_handler('join', &on_join);
$conn->add_handler('part', &on_part);
$conn->add_handler('msg', &on_msg);
$conn->add_handler('public', &on_public);
$conn->add_handler('cping', &on_ping);
$conn->add_handler('crping', &on_ping_reply);
# The end of MOTD (message of the day), numbered 376 signifies we've connect
$conn->add_handler('376', &on_connect);
$conn->add_global_handler([ 251,252,253,254,302,255 ], &on_init);
$conn->add_global_handler('disconnect', &on_disconnect);
$conn->add_handler('cping', &on_ping);
$conn->add_handler('crping', &on_ping_reply);
$conn->add_handler('caction', &on_action);
$conn->add_handler('topic', &on_topic);
$conn->add_handler('notopic', &on_topic);
# start IRC
print " done.n";

print "starting...n";
$irc->start;
sub callback{
($fh,$irc) = @_;
open ($fh ,">>$ENV{HOME}/log.txt") or die;
print $fh $irc;
}
while (1)
{
$irc->do_one_loop();
$|=1;
select($irc);
$irc->addfh($fh,&callback,"rw");

}


Avatar
john.swilting
john.swilting wrote:

john.swilting wrote:

john.swilting wrote:

je suis en train de travailler sur un bot
je me suis base sur du code que j avais trouver sur google.groups

il ne fonctionne pas
j ai essayer le debugger mais je n y comprends rien

http://perso.wanadoo.fr/john.swilting/bot.tar.bz2
je suis chez mon pere et ya le web je peux donc faire des test reseaux

ce que je voudrais c enregistrer la sortie du bot dans un fichier de log
j ai completement reecrit mon code pouvait vous m aider

#!/usr/bin/perl -w
use FileHandle;
use Net::IRC;
use strict;
# create the IRC object
my $irc = new Net::IRC;
my $fh = new FileHandle;
# Create a connection object. You can have more than one "connection"
# per IRC object, but we'll just be working with one.
my $conn = $irc->newconn(
Server => 'irc.freenode.com',
# Note: IRC port is normally 6667, but my firewall won't allow it
Port => '6665',
Nick => 'HelloBot',
Ircname => 'I like to greet!',
Username => 'hello'
);

# We're going to add this to the conn hash so we know what channel we
# want to operate in.
$conn->{channel} ='#paulla';

sub on_connect {

# shift in our connection object that is passed automatically
my $conn = shift;

# when we connect, join our channel and greet it
$conn->join($conn->{channel});
$conn->privmsg($conn->{channel}, 'Hello everyone!');
$conn->{connected} = 1;

}

sub on_join {

# get our connection object and the event object, which is passed
# with this event automatically
my ($conn, $event) = @_;

# this is the nick that just joined
my $nick = $event->{nick};
# say hello to the nick in public
$conn->privmsg($conn->{channel}, "Hello, $nick!");
}

sub on_part {

# pretty much the same as above

my ($conn, $event) = @_;

my $nick = $event->{nick};
$conn->privmsg($conn->{channel}, "Goodbye, $nick!");
}
# Handles some messages you get when you connect
sub on_init {
my ($conn, $event) = @_;
my (@args) = ($event->args);
shift (@args);

print "*** @argsn";
}
# What to do when we receive a private PRIVMSG.
sub on_msg {
my ($conn, $event) = @_;
my ($nick) = $event->nick;
my ($arg) = ($event->args);


print "*$nick* ", ($event->args), "n";
# $self->privmsg($nick, &pickrandom()); # Say a Zippy quote.
}
sub on_public {
my ($conn, $event) = @_;
my @to = $event->to;
my ($nick, $mynick) = ($event->nick, $conn->nick);
my ($arg) = ($event->args);

# Note that $event->to() returns a list (or arrayref, in scalar
# context) of the message's recipients, since there can easily be
# more than one.


}
sub on_umode {
my ($conn, $event) = @_;
my @to = $event->to;
my ($nick, $mynick) = ($event->nick, $conn->nick);
my ($arg) = ($event->args);

# Note that $event->to() returns a list (or arrayref, in scalar
# context) of the message's recipients, since there can easily be
# more than one.

print "<$nick> $argn";


}
sub on_chat {
my ($conn, $event) = @_;
my ($sock) = ($event->to)[0];

print '*' . $event->nick . '* ' . join(' ', $event->args), "n";
# $self->privmsg($sock); # Say a Zippy quote.
}
# Prints the names of people in a channel when we enter.
sub on_names {
my ($conn, $event) = @_;
my (@list, $channel) = ($event->args); # eat yer heart out, mjd!

# splice() only works on real arrays. Sigh.
($channel, @list) = splice @list, 2;

print "Users on $channel: @listn";
}
# Yells about incoming CTCP PINGs.
sub on_ping {
my ($conn, $event) = @_;
my $nick = $event->nick;

$self->ctcp_reply($nick, join (' ', ($event->args)));
print "*** CTCP PING request from $nick receivedn";
}

# Gives lag results for outgoing PINGs.
sub on_ping_reply {
my ($conn, $event) = @_;
my ($args) = ($event->args)[1];
my ($nick) = $event->nick;

$args = time - $args;
print "*** CTCP PING reply from $nick: $args sec.n";
}

# Change our nick if someone stole it.
sub on_nick_taken {
my ($conn) = shift;

$self->nick(substr($conn->nick, -1) . substr($conn->nick, 0, 8));
}
# Display formatted CTCP ACTIONs.
sub on_action {
my ($conn, $event) = @_;
my ($nick, @args) = ($event->nick, $event->args);

print "* $nick @argsn";
}

# Reconnect to the server when we die.
sub on_disconnect {
my ($conn, $event) = @_;

print "Disconnected from ", $event->from(), " (",
($event->args())[0], "). Attempting to reconnect...n";
$self->connect();
}

# Look at the topic for a channel you join.
sub on_topic {
my ($conn, $event) = @_;
my @args = $event->args();

# Note the use of the same handler sub for different events.

if ($event->type() eq 'notopic') {
print "No topic set for $args[1].n";

# If it's being done _to_ the channel, it's a topic change.
} elsif ($event->type() eq 'topic' and $event->to()) {
print "Topic change for ", $event->to(), ": $args[0]n";

} else {
print "The topic for $args[1] is "$args[2]".n";
}
}



print "Installing handler routines...";
# add event handlers for join and part events
$conn->add_handler('on_chat', &on_chat);
$conn->add_handler('umode', &on_umode);
$conn->add_handler('join', &on_join);
$conn->add_handler('part', &on_part);
$conn->add_handler('msg', &on_msg);
$conn->add_handler('public', &on_public);
$conn->add_handler('cping', &on_ping);
$conn->add_handler('crping', &on_ping_reply);
# The end of MOTD (message of the day), numbered 376 signifies we've
# connect
$conn->add_handler('376', &on_connect);
$conn->add_global_handler([ 251,252,253,254,302,255 ], &on_init);
$conn->add_global_handler('disconnect', &on_disconnect);
$conn->add_handler('cping', &on_ping);
$conn->add_handler('crping', &on_ping_reply);
$conn->add_handler('caction', &on_action);
$conn->add_handler('topic', &on_topic);
$conn->add_handler('notopic', &on_topic);
# start IRC
print " done.n";

print "starting...n";
$irc->start;
sub callback{
open ($fh ,">>$ENV{HOME}/log.txt") or die;
print $fh $irc;
}
while (1)
{
$irc->do_one_loop();
$|=1;
select($irc);
$irc->addfh($fh,&callback,"rw");

}


j ai change quelque petits truc mais ça marche toujours pas
#!/usr/bin/perl -w
use FileHandle;
use Net::IRC;
use strict;
# create the IRC object
my $irc = new Net::IRC;
my $fh = new FileHandle;
# Create a connection object. You can have more than one "connection" per
# IRC object, but we'll just be working with one.
my $conn = $irc->newconn(
Server => 'irc.freenode.com',
# Note: IRC port is normally 6667, but my firewall won't allow it
Port => '6665',
Nick => 'HelloBot',
Ircname => 'I like to greet!',
Username => 'hello'
);

# We're going to add this to the conn hash so we know what channel we
# want to operate in.
$conn->{channel} ='#paulla';

sub on_connect {

# shift in our connection object that is passed automatically
my $conn = shift;

# when we connect, join our channel and greet it
$conn->join($conn->{channel});
$conn->privmsg($conn->{channel}, 'Hello everyone!');
$conn->{connected} = 1;

}

sub on_join {

# get our connection object and the event object, which is passed
# with this event automatically
my ($conn, $event) = @_;

# this is the nick that just joined
my $nick = $event->{nick};
# say hello to the nick in public
$conn->privmsg($conn->{channel}, "Hello, $nick!");
}

sub on_part {

# pretty much the same as above

my ($conn, $event) = @_;

my $nick = $event->{nick};
$conn->privmsg($conn->{channel}, "Goodbye, $nick!");
}
# Handles some messages you get when you connect
sub on_init {
my ($conn, $event) = @_;
my (@args) = ($event->args);
shift (@args);

print "*** @argsn";
}
# What to do when we receive a private PRIVMSG.
sub on_msg {
my ($conn, $event) = @_;
my ($nick) = $event->nick;
my ($arg) = ($event->args);


print "*$nick* ", ($event->args), "n";
# $self->privmsg($nick, &pickrandom()); # Say a Zippy quote.
}
sub on_public {
my ($conn, $event) = @_;
my @to = $event->to;
my ($nick, $mynick) = ($event->nick, $conn->nick);
my ($arg) = ($event->args);

# Note that $event->to() returns a list (or arrayref, in scalar
# context) of the message's recipients, since there can easily be
# more than one.


}
sub on_umode {
my ($conn, $event) = @_;
my @to = $event->to;
my ($nick, $mynick) = ($event->nick, $conn->nick);
my ($arg) = ($event->args);

# Note that $event->to() returns a list (or arrayref, in scalar
# context) of the message's recipients, since there can easily be
# more than one.

print "<$nick> $argn";


}
sub on_chat {
my ($conn, $event) = @_;
my ($sock) = ($event->to)[0];

print '*' . $event->nick . '* ' . join(' ', $event->args), "n";
# $self->privmsg($sock); # Say a Zippy quote.
}
# Prints the names of people in a channel when we enter.
sub on_names {
my ($conn, $event) = @_;
my (@list, $channel) = ($event->args); # eat yer heart out, mjd!

# splice() only works on real arrays. Sigh.
($channel, @list) = splice @list, 2;

print "Users on $channel: @listn";
}
# Yells about incoming CTCP PINGs.
sub on_ping {
my ($conn, $event) = @_;
my $nick = $event->nick;

$conn->ctcp_reply($nick, join (' ', ($event->args)));
print "*** CTCP PING request from $nick receivedn";
}

# Gives lag results for outgoing PINGs.
sub on_ping_reply {
my ($conn, $event) = @_;
my ($args) = ($event->args)[1];
my ($nick) = $event->nick;

$args = time - $args;
print "*** CTCP PING reply from $nick: $args sec.n";
}

# Change our nick if someone stole it.
sub on_nick_taken {
my ($conn) = shift;

$conn->nick(substr($conn->nick, -1) . substr($conn->nick, 0, 8));
}
# Display formatted CTCP ACTIONs.
sub on_action {
my ($conn, $event) = @_;
my ($nick, @args) = ($event->nick, $event->args);

print "* $nick @argsn";
}

# Reconnect to the server when we die.
sub on_disconnect {
my ($conn, $event) = @_;

print "Disconnected from ", $event->from(), " (",
($event->args())[0], "). Attempting to reconnect...n";
$conn->connect();
}

# Look at the topic for a channel you join.
sub on_topic {
my ($conn, $event) = @_;
my @args = $event->args();

# Note the use of the same handler sub for different events.

if ($event->type() eq 'notopic') {
print "No topic set for $args[1].n";

# If it's being done _to_ the channel, it's a topic change.
} elsif ($event->type() eq 'topic' and $event->to()) {
print "Topic change for ", $event->to(), ": $args[0]n";

} else {
print "The topic for $args[1] is "$args[2]".n";
}
}



print "Installing handler routines...";
# add event handlers for join and part events
$conn->add_handler('on_chat', &on_chat);
$conn->add_handler('umode', &on_umode);
$conn->add_handler('join', &on_join);
$conn->add_handler('part', &on_part);
$conn->add_handler('msg', &on_msg);
$conn->add_handler('public', &on_public);
$conn->add_handler('cping', &on_ping);
$conn->add_handler('crping', &on_ping_reply);
# The end of MOTD (message of the day), numbered 376 signifies we've
# connect
$conn->add_handler('376', &on_connect);
$conn->add_global_handler([ 251,252,253,254,302,255 ], &on_init);
$conn->add_global_handler('disconnect', &on_disconnect);
$conn->add_handler('cping', &on_ping);
$conn->add_handler('crping', &on_ping_reply);
$conn->add_handler('caction', &on_action);
$conn->add_handler('topic', &on_topic);
$conn->add_handler('notopic', &on_topic);
# start IRC
print " done.n";

print "starting...n";
$irc->start;
sub callback{
($fh,$irc) = @_;
open ($fh ,">>$ENV{HOME}/log.txt") or die;
print $fh $irc;
}
while (1)
{
$irc->do_one_loop();
$|=1;
select($irc);
$irc->addfh($fh,&callback,"rw");

}


j ai reecrit mon code et je l ai simplifier
mais comment enregistrer la sortie du channel
je suis un peu perdu
aidez moi

#!/usr/bin/perl -w
use FileHandle;
use Net::IRC;
use strict;
# create the IRC object
my $irc = new Net::IRC;
my $fh = new FileHandle;
# Create a connection object. You can have more than one "connection" per
# IRC object, but we'll just be working with one.
my $conn = $irc->newconn(
Server => 'irc.freenode.com',
# Note: IRC port is normally 6667, but my firewall won't allow it
Port => '6665',
Nick => 'HelloBot',
Ircname => 'I like to greet!',
Username => 'hello'
);

# We're going to add this to the conn hash so we know what channel we
# want to operate in.
$conn->{channel} ='#ubuntu_fr';

sub on_connect {

# shift in our connection object that is passed automatically
my $conn = shift;

# when we connect, join our channel and greet it
$conn->join($conn->{channel});
$conn->privmsg($conn->{channel}, 'Hello everyone!');
$conn->{connected} = 1;

}

sub on_join {

# get our connection object and the event object, which is passed
# with this event automatically
my ($conn, $event) = @_;

# this is the nick that just joined
my $nick = $event->{nick};
# say hello to the nick in public
$conn->privmsg($conn->{channel}, "Hello, $nick!");
}

sub on_part {

# pretty much the same as above

my ($conn, $event) = @_;

my $nick = $event->{nick};
$conn->privmsg($conn->{channel}, "Goodbye, $nick!");
}
# Handles some messages you get when you connect
sub on_init {
my ($conn, $event) = @_;
my (@args) = ($event->args);
shift (@args);

print "*** @argsn";
}
# Prints the names of people in a channel when we enter.


# Reconnect to the server when we die.
sub on_disconnect {
my ($conn, $event) = @_;

print "Disconnected from ", $event->from(), " (",
($event->args())[0], "). Attempting to reconnect...n";
$conn->connect();
}
sub on_public{
my($conn,$event)=@_;
my $text =$event->{args}[0];
}

print "Installing handler routines...n";
# add event handlers for join and part events
#$conn->add_handler('on_chat', &on_chat);
#$conn->add_handler('umode', &on_umode);
$conn->add_handler('join', &on_join);
$conn->add_handler('part', &on_part);
#$conn->add_handler('msg', &on_msg);
$conn->add_handler('public', &on_public);
#$conn->add_handler('on_names',&on_names);
#$conn->add_handler('cping', &on_ping);
#$conn->add_handler('crping', &on_ping_reply);
# The end of MOTD (message of the day), numbered 376 signifies we've connect
$conn->add_handler('376', &on_connect);
$conn->add_global_handler([ 251,252,253,254,302,255 ], &on_init);
$conn->add_global_handler('disconnect', &on_disconnect);
#$conn->add_handler('cping', &on_ping);
#$conn->add_handler('crping', &on_ping_reply);
#$conn->add_handler('caction', &on_action);
#$conn->add_handler('topic', &on_topic);
#$conn->add_handler('notopic', &on_topic);
# start IRC
print " done.n";

print "starting...n";
$irc->start;
while (1)
{
$irc->do_one_loop();

}



Avatar
john.swilting
john.swilting wrote:

john.swilting wrote:

john.swilting wrote:

john.swilting wrote:

je suis en train de travailler sur un bot
je me suis base sur du code que j avais trouver sur google.groups

il ne fonctionne pas
j ai essayer le debugger mais je n y comprends rien

http://perso.wanadoo.fr/john.swilting/bot.tar.bz2
je suis chez mon pere et ya le web je peux donc faire des test reseaux

ce que je voudrais c enregistrer la sortie du bot dans un fichier de log
j ai completement reecrit mon code pouvait vous m aider

#!/usr/bin/perl -w
use FileHandle;
use Net::IRC;
use strict;
# create the IRC object
my $irc = new Net::IRC;
my $fh = new FileHandle;
# Create a connection object. You can have more than one "connection"
# per IRC object, but we'll just be working with one.
my $conn = $irc->newconn(
Server => 'irc.freenode.com',
# Note: IRC port is normally 6667, but my firewall won't allow
# it
Port => '6665',
Nick => 'HelloBot',
Ircname => 'I like to greet!',
Username => 'hello'
);

# We're going to add this to the conn hash so we know what channel we
# want to operate in.
$conn->{channel} ='#paulla';

sub on_connect {

# shift in our connection object that is passed automatically
my $conn = shift;

# when we connect, join our channel and greet it
$conn->join($conn->{channel});
$conn->privmsg($conn->{channel}, 'Hello everyone!');
$conn->{connected} = 1;

}

sub on_join {

# get our connection object and the event object, which is
# passed with this event automatically
my ($conn, $event) = @_;

# this is the nick that just joined
my $nick = $event->{nick};
# say hello to the nick in public
$conn->privmsg($conn->{channel}, "Hello, $nick!");
}

sub on_part {

# pretty much the same as above

my ($conn, $event) = @_;

my $nick = $event->{nick};
$conn->privmsg($conn->{channel}, "Goodbye, $nick!");
}
# Handles some messages you get when you connect
sub on_init {
my ($conn, $event) = @_;
my (@args) = ($event->args);
shift (@args);

print "*** @argsn";
}
# What to do when we receive a private PRIVMSG.
sub on_msg {
my ($conn, $event) = @_;
my ($nick) = $event->nick;
my ($arg) = ($event->args);


print "*$nick* ", ($event->args), "n";
# $self->privmsg($nick, &pickrandom()); # Say a Zippy quote.
}
sub on_public {
my ($conn, $event) = @_;
my @to = $event->to;
my ($nick, $mynick) = ($event->nick, $conn->nick);
my ($arg) = ($event->args);

# Note that $event->to() returns a list (or arrayref, in scalar
# context) of the message's recipients, since there can easily be
# more than one.


}
sub on_umode {
my ($conn, $event) = @_;
my @to = $event->to;
my ($nick, $mynick) = ($event->nick, $conn->nick);
my ($arg) = ($event->args);

# Note that $event->to() returns a list (or arrayref, in scalar
# context) of the message's recipients, since there can easily be
# more than one.

print "<$nick> $argn";


}
sub on_chat {
my ($conn, $event) = @_;
my ($sock) = ($event->to)[0];

print '*' . $event->nick . '* ' . join(' ', $event->args), "n";
# $self->privmsg($sock); # Say a Zippy quote.
}
# Prints the names of people in a channel when we enter.
sub on_names {
my ($conn, $event) = @_;
my (@list, $channel) = ($event->args); # eat yer heart out, mjd!

# splice() only works on real arrays. Sigh.
($channel, @list) = splice @list, 2;

print "Users on $channel: @listn";
}
# Yells about incoming CTCP PINGs.
sub on_ping {
my ($conn, $event) = @_;
my $nick = $event->nick;

$self->ctcp_reply($nick, join (' ', ($event->args)));
print "*** CTCP PING request from $nick receivedn";
}

# Gives lag results for outgoing PINGs.
sub on_ping_reply {
my ($conn, $event) = @_;
my ($args) = ($event->args)[1];
my ($nick) = $event->nick;

$args = time - $args;
print "*** CTCP PING reply from $nick: $args sec.n";
}

# Change our nick if someone stole it.
sub on_nick_taken {
my ($conn) = shift;

$self->nick(substr($conn->nick, -1) . substr($conn->nick, 0, 8));
}
# Display formatted CTCP ACTIONs.
sub on_action {
my ($conn, $event) = @_;
my ($nick, @args) = ($event->nick, $event->args);

print "* $nick @argsn";
}

# Reconnect to the server when we die.
sub on_disconnect {
my ($conn, $event) = @_;

print "Disconnected from ", $event->from(), " (",
($event->args())[0], "). Attempting to reconnect...n";
$self->connect();
}

# Look at the topic for a channel you join.
sub on_topic {
my ($conn, $event) = @_;
my @args = $event->args();

# Note the use of the same handler sub for different events.

if ($event->type() eq 'notopic') {
print "No topic set for $args[1].n";

# If it's being done _to_ the channel, it's a topic change.
} elsif ($event->type() eq 'topic' and $event->to()) {
print "Topic change for ", $event->to(), ": $args[0]n";

} else {
print "The topic for $args[1] is "$args[2]".n";
}
}



print "Installing handler routines...";
# add event handlers for join and part events
$conn->add_handler('on_chat', &on_chat);
$conn->add_handler('umode', &on_umode);
$conn->add_handler('join', &on_join);
$conn->add_handler('part', &on_part);
$conn->add_handler('msg', &on_msg);
$conn->add_handler('public', &on_public);
$conn->add_handler('cping', &on_ping);
$conn->add_handler('crping', &on_ping_reply);
# The end of MOTD (message of the day), numbered 376 signifies we've
# connect
$conn->add_handler('376', &on_connect);
$conn->add_global_handler([ 251,252,253,254,302,255 ], &on_init);
$conn->add_global_handler('disconnect', &on_disconnect);
$conn->add_handler('cping', &on_ping);
$conn->add_handler('crping', &on_ping_reply);
$conn->add_handler('caction', &on_action);
$conn->add_handler('topic', &on_topic);
$conn->add_handler('notopic', &on_topic);
# start IRC
print " done.n";

print "starting...n";
$irc->start;
sub callback{
open ($fh ,">>$ENV{HOME}/log.txt") or die;
print $fh $irc;
}
while (1)
{
$irc->do_one_loop();
$|=1;
select($irc);
$irc->addfh($fh,&callback,"rw");

}


j ai change quelque petits truc mais ça marche toujours pas
#!/usr/bin/perl -w
use FileHandle;
use Net::IRC;
use strict;
# create the IRC object
my $irc = new Net::IRC;
my $fh = new FileHandle;
# Create a connection object. You can have more than one "connection"
# per IRC object, but we'll just be working with one.
my $conn = $irc->newconn(
Server => 'irc.freenode.com',
# Note: IRC port is normally 6667, but my firewall won't allow it
Port => '6665',
Nick => 'HelloBot',
Ircname => 'I like to greet!',
Username => 'hello'
);

# We're going to add this to the conn hash so we know what channel we
# want to operate in.
$conn->{channel} ='#paulla';

sub on_connect {

# shift in our connection object that is passed automatically
my $conn = shift;

# when we connect, join our channel and greet it
$conn->join($conn->{channel});
$conn->privmsg($conn->{channel}, 'Hello everyone!');
$conn->{connected} = 1;

}

sub on_join {

# get our connection object and the event object, which is passed
# with this event automatically
my ($conn, $event) = @_;

# this is the nick that just joined
my $nick = $event->{nick};
# say hello to the nick in public
$conn->privmsg($conn->{channel}, "Hello, $nick!");
}

sub on_part {

# pretty much the same as above

my ($conn, $event) = @_;

my $nick = $event->{nick};
$conn->privmsg($conn->{channel}, "Goodbye, $nick!");
}
# Handles some messages you get when you connect
sub on_init {
my ($conn, $event) = @_;
my (@args) = ($event->args);
shift (@args);

print "*** @argsn";
}
# What to do when we receive a private PRIVMSG.
sub on_msg {
my ($conn, $event) = @_;
my ($nick) = $event->nick;
my ($arg) = ($event->args);


print "*$nick* ", ($event->args), "n";
# $self->privmsg($nick, &pickrandom()); # Say a Zippy quote.
}
sub on_public {
my ($conn, $event) = @_;
my @to = $event->to;
my ($nick, $mynick) = ($event->nick, $conn->nick);
my ($arg) = ($event->args);

# Note that $event->to() returns a list (or arrayref, in scalar
# context) of the message's recipients, since there can easily be
# more than one.


}
sub on_umode {
my ($conn, $event) = @_;
my @to = $event->to;
my ($nick, $mynick) = ($event->nick, $conn->nick);
my ($arg) = ($event->args);

# Note that $event->to() returns a list (or arrayref, in scalar
# context) of the message's recipients, since there can easily be
# more than one.

print "<$nick> $argn";


}
sub on_chat {
my ($conn, $event) = @_;
my ($sock) = ($event->to)[0];

print '*' . $event->nick . '* ' . join(' ', $event->args), "n";
# $self->privmsg($sock); # Say a Zippy quote.
}
# Prints the names of people in a channel when we enter.
sub on_names {
my ($conn, $event) = @_;
my (@list, $channel) = ($event->args); # eat yer heart out, mjd!

# splice() only works on real arrays. Sigh.
($channel, @list) = splice @list, 2;

print "Users on $channel: @listn";
}
# Yells about incoming CTCP PINGs.
sub on_ping {
my ($conn, $event) = @_;
my $nick = $event->nick;

$conn->ctcp_reply($nick, join (' ', ($event->args)));
print "*** CTCP PING request from $nick receivedn";
}

# Gives lag results for outgoing PINGs.
sub on_ping_reply {
my ($conn, $event) = @_;
my ($args) = ($event->args)[1];
my ($nick) = $event->nick;

$args = time - $args;
print "*** CTCP PING reply from $nick: $args sec.n";
}

# Change our nick if someone stole it.
sub on_nick_taken {
my ($conn) = shift;

$conn->nick(substr($conn->nick, -1) . substr($conn->nick, 0, 8));
}
# Display formatted CTCP ACTIONs.
sub on_action {
my ($conn, $event) = @_;
my ($nick, @args) = ($event->nick, $event->args);

print "* $nick @argsn";
}

# Reconnect to the server when we die.
sub on_disconnect {
my ($conn, $event) = @_;

print "Disconnected from ", $event->from(), " (",
($event->args())[0], "). Attempting to reconnect...n";
$conn->connect();
}

# Look at the topic for a channel you join.
sub on_topic {
my ($conn, $event) = @_;
my @args = $event->args();

# Note the use of the same handler sub for different events.

if ($event->type() eq 'notopic') {
print "No topic set for $args[1].n";

# If it's being done _to_ the channel, it's a topic change.
} elsif ($event->type() eq 'topic' and $event->to()) {
print "Topic change for ", $event->to(), ": $args[0]n";

} else {
print "The topic for $args[1] is "$args[2]".n";
}
}



print "Installing handler routines...";
# add event handlers for join and part events
$conn->add_handler('on_chat', &on_chat);
$conn->add_handler('umode', &on_umode);
$conn->add_handler('join', &on_join);
$conn->add_handler('part', &on_part);
$conn->add_handler('msg', &on_msg);
$conn->add_handler('public', &on_public);
$conn->add_handler('cping', &on_ping);
$conn->add_handler('crping', &on_ping_reply);
# The end of MOTD (message of the day), numbered 376 signifies we've
# connect
$conn->add_handler('376', &on_connect);
$conn->add_global_handler([ 251,252,253,254,302,255 ], &on_init);
$conn->add_global_handler('disconnect', &on_disconnect);
$conn->add_handler('cping', &on_ping);
$conn->add_handler('crping', &on_ping_reply);
$conn->add_handler('caction', &on_action);
$conn->add_handler('topic', &on_topic);
$conn->add_handler('notopic', &on_topic);
# start IRC
print " done.n";

print "starting...n";
$irc->start;
sub callback{
($fh,$irc) = @_;
open ($fh ,">>$ENV{HOME}/log.txt") or die;
print $fh $irc;
}
while (1)
{
$irc->do_one_loop();
$|=1;
select($irc);
$irc->addfh($fh,&callback,"rw");

}


j ai reecrit mon code et je l ai simplifier
mais comment enregistrer la sortie du channel
je suis un peu perdu
aidez moi

#!/usr/bin/perl -w
use FileHandle;
use Net::IRC;
use strict;
# create the IRC object
my $irc = new Net::IRC;
my $fh = new FileHandle;
# Create a connection object. You can have more than one "connection" per
# IRC object, but we'll just be working with one.
my $conn = $irc->newconn(
Server => 'irc.freenode.com',
# Note: IRC port is normally 6667, but my firewall won't allow it
Port => '6665',
Nick => 'HelloBot',
Ircname => 'I like to greet!',
Username => 'hello'
);

# We're going to add this to the conn hash so we know what channel we
# want to operate in.
$conn->{channel} ='#ubuntu_fr';

sub on_connect {

# shift in our connection object that is passed automatically
my $conn = shift;

# when we connect, join our channel and greet it
$conn->join($conn->{channel});
$conn->privmsg($conn->{channel}, 'Hello everyone!');
$conn->{connected} = 1;

}

sub on_join {

# get our connection object and the event object, which is passed
# with this event automatically
my ($conn, $event) = @_;

# this is the nick that just joined
my $nick = $event->{nick};
# say hello to the nick in public
$conn->privmsg($conn->{channel}, "Hello, $nick!");
}

sub on_part {

# pretty much the same as above

my ($conn, $event) = @_;

my $nick = $event->{nick};
$conn->privmsg($conn->{channel}, "Goodbye, $nick!");
}
# Handles some messages you get when you connect
sub on_init {
my ($conn, $event) = @_;
my (@args) = ($event->args);
shift (@args);

print "*** @argsn";
}
# Prints the names of people in a channel when we enter.


# Reconnect to the server when we die.
sub on_disconnect {
my ($conn, $event) = @_;

print "Disconnected from ", $event->from(), " (",
($event->args())[0], "). Attempting to reconnect...n";
$conn->connect();
}
sub on_public{
my($conn,$event)=@_;
my $text =$event->{args}[0];
}

print "Installing handler routines...n";
# add event handlers for join and part events
#$conn->add_handler('on_chat', &on_chat);
#$conn->add_handler('umode', &on_umode);
$conn->add_handler('join', &on_join);
$conn->add_handler('part', &on_part);
#$conn->add_handler('msg', &on_msg);
$conn->add_handler('public', &on_public);
#$conn->add_handler('on_names',&on_names);
#$conn->add_handler('cping', &on_ping);
#$conn->add_handler('crping', &on_ping_reply);
# The end of MOTD (message of the day), numbered 376 signifies we've
# connect
$conn->add_handler('376', &on_connect);
$conn->add_global_handler([ 251,252,253,254,302,255 ], &on_init);
$conn->add_global_handler('disconnect', &on_disconnect);
#$conn->add_handler('cping', &on_ping);
#$conn->add_handler('crping', &on_ping_reply);
#$conn->add_handler('caction', &on_action);
#$conn->add_handler('topic', &on_topic);
#$conn->add_handler('notopic', &on_topic);
# start IRC
print " done.n";

print "starting...n";
$irc->start;
while (1)
{
$irc->do_one_loop();

}


j ai encore reecrit mon code mais ça marche pas

#!/usr/bin/perl -w
use FileHandle;
use Net::IRC;
use strict;
# create the IRC object
my $irc = new Net::IRC;
my $fh = new FileHandle;
autoflush STDOUT 1;
$fh->open(">>$ENV{HOME}/log.txt");
my $text;
# Create a connection object. You can have more than one "connection" per
# IRC object, but we'll just be working with one.
my $conn = $irc->newconn(
Server => 'irc.tapesh.org',
# Note: IRC port is normally 6667, but my firewall won't allow it
Port => '6667',
Nick => 'swilting',
Ircname => 'swilting_',
Username => 'swilting__'
);

# We're going to add this to the conn hash so we know what channel we
# want to operate in.
$conn->{channel} ='#iran';

sub on_connect {

# shift in our connection object that is passed automatically
my $conn = shift;

# when we connect, join our channel and greet it
$conn->join($conn->{channel});
$conn->privmsg($conn->{channel}, 'Hello everyone!');
$conn->{connected} = 1;

}

sub on_join {

# get our connection object and the event object, which is passed
# with this event automatically
my ($conn, $event) = @_;

# this is the nick that just joined
my $nick = $event->{nick};
# say hello to the nick in public
$conn->privmsg($conn->{channel}, "Hello, $nick!");
}

sub on_part {

# pretty much the same as above

my ($conn, $event) = @_;

my $nick = $event->{nick};
$conn->privmsg($conn->{channel}, "Goodbye, $nick!");
}
# Handles some messages you get when you connect
sub on_init {
my ($conn, $event) = @_;
my (@args) = ($event->args);
shift (@args);

print "*** @argsn";
}
# Prints the names of people in a channel when we enter.


# Reconnect to the server when we die.
sub on_disconnect {
my ($conn, $event) = @_;

print "Disconnected from ", $event->from(), " (",
($event->args())[0], "). Attempting to reconnect...n";
$conn->connect();
}
sub on_public{
my($conn,$event)=@_;
my $text =$event->{args}[0];
if($text =~/^./){
&on_log($fh,$text);
}
}
sub on_log{
shift;
print $fh $text,"n";
$fh->close;

}
print "Installing handler routines...n";
# add event handlers for join and part events
#$conn->add_handler('on_chat', &on_chat);
#$conn->add_handler('umode', &on_umode);
$conn->add_handler('join', &on_join);
$conn->add_handler('part', &on_part);
#$conn->add_handler('msg', &on_msg);
$conn->add_handler('public', &on_public);
#$conn->add_handler('on_names',&on_names);
#$conn->add_handler('cping', &on_ping);
#$conn->add_handler('crping', &on_ping_reply);
# The end of MOTD (message of the day), numbered 376 signifies we've connect
$conn->add_handler('376', &on_connect);
$conn->add_global_handler([ 251,252,253,254,302,255 ], &on_init);
$conn->add_global_handler('disconnect', &on_disconnect);
#$conn->add_handler('cping', &on_ping);
#$conn->add_handler('crping', &on_ping_reply);
#$conn->add_handler('caction', &on_action);
#$conn->add_handler('topic', &on_topic);
#$conn->add_handler('notopic', &on_topic);
# start IRC
print " done.n";

print "starting...n";
$irc->start;
while (1)
{
$irc->do_one_loop();

}




Avatar
MeiK
john.swilting wrote:
[...]


Cela dit ca te tente pas de:

1) Arreter de balancer ton code en nous disant "ca marche
pas, vous pouvez le coder pour moi ?"
2) Arreter de balancer ton code en citation dans une de tes
propres reponses (ouais ca donne pas envie de parcourir
ton message)
3) man rafb (par exemple, puis man netiquette plus generalement)



--
Michael K. (epitech)
http://etudiant.epitech.net/~meik/
"SoftIce est avant tout un desassembleur."
E.D au proces en appel de Guillermito