staLin
17.02.2007, 17:56
Hallo miteinander!
Ich versuche mich an 'nem IRCBot in PERL mit einer MySQL-Anbindung.
Der Bot sollte folgende Aufgaben erfüllen:
Verbindung zur DB herstellen
Wert in "reg" suchen:
Wenn reg=0
/nick $nickname
/msg nickserv register $passwd $email
Sonst: nichts
Jede Minute soll der Befehl ausführen (Wert 0 suchen)
Datenbank: irc_test
CREATE TABLE `mitglieder` (
`id` int(11) NOT NULL auto_increment,
`nick` varchar(30),
`passwd` varchar(20),
`email` varchar(35),
`reg` varchar(1) default NULL,
PRIMARY KEY (`id`)
) TYPE=ISAM PACK_KEYS=1;
IRCBot:
#!/usr/bin/perl -w
use Net::IRC;
use strict;
use Data::Dumper;
my $irc = new Net::IRC;
my $conn = $irc->newconn(
Server => shift || '127.0.0.2',
Port => shift || '6668',
Nick => 'TestBot',
Ircname => 'IRC Services Management',
Username => 'management'
);
$conn->{opernickpw} = shift || 'S3rvBot';
$conn->{channel} = shift || '#irc_management';
sub on_connect {
my $conn = shift;
$conn->oper($conn->{opernickpw}, 'test');
$conn->join($conn->{channel});
$conn->privmsg($conn->{channel}, 'test');
}
sub on_notice {
my ($conn, $event) = @_;
if (
($event->{nick} eq 'NickServ') and
($event->{args}[0] eq 'This nickname is owned by someone else. You must select a different one.')
) {
# send an /msg to NickServ with the password
$conn->privmsg('NickServ', 'identify test');
on_connect($conn);
}
}
# add handlers for our standard events
$conn->add_handler('notice', \&on_notice);
$conn->add_handler('376', \&on_connect);
# start IRC
$irc->start;
Ich wäre Euch sehr dankbar für Eure Hilfe!
Gruss
staLin
Ich versuche mich an 'nem IRCBot in PERL mit einer MySQL-Anbindung.
Der Bot sollte folgende Aufgaben erfüllen:
Verbindung zur DB herstellen
Wert in "reg" suchen:
Wenn reg=0
/nick $nickname
/msg nickserv register $passwd $email
Sonst: nichts
Jede Minute soll der Befehl ausführen (Wert 0 suchen)
Datenbank: irc_test
CREATE TABLE `mitglieder` (
`id` int(11) NOT NULL auto_increment,
`nick` varchar(30),
`passwd` varchar(20),
`email` varchar(35),
`reg` varchar(1) default NULL,
PRIMARY KEY (`id`)
) TYPE=ISAM PACK_KEYS=1;
IRCBot:
#!/usr/bin/perl -w
use Net::IRC;
use strict;
use Data::Dumper;
my $irc = new Net::IRC;
my $conn = $irc->newconn(
Server => shift || '127.0.0.2',
Port => shift || '6668',
Nick => 'TestBot',
Ircname => 'IRC Services Management',
Username => 'management'
);
$conn->{opernickpw} = shift || 'S3rvBot';
$conn->{channel} = shift || '#irc_management';
sub on_connect {
my $conn = shift;
$conn->oper($conn->{opernickpw}, 'test');
$conn->join($conn->{channel});
$conn->privmsg($conn->{channel}, 'test');
}
sub on_notice {
my ($conn, $event) = @_;
if (
($event->{nick} eq 'NickServ') and
($event->{args}[0] eq 'This nickname is owned by someone else. You must select a different one.')
) {
# send an /msg to NickServ with the password
$conn->privmsg('NickServ', 'identify test');
on_connect($conn);
}
}
# add handlers for our standard events
$conn->add_handler('notice', \&on_notice);
$conn->add_handler('376', \&on_connect);
# start IRC
$irc->start;
Ich wäre Euch sehr dankbar für Eure Hilfe!
Gruss
staLin