Hi,
ich hab ein Paar Fragen bezüglich des Perl Moduls Net::IRC und deren DCC chat/send/get Funktionen. Ich hoffe ihr könnt mir weiterhelfen, da ich schon google maltretiert habe und die Dokumentation des Moduls ziemlich "schlecht" ist.
So, jetzt mal zu den Fragen und Problemen *g*
Im Sample des Moduls steht für einen DCC Chat und einem DCC File "get" folgendes:
sub on_dcc {
my ($self, $event) = @_;
my $type = ($event->args)[1];
if (uc($type) eq 'SEND') {
open TEST, ">/tmp/net-irc.dcctest"
or do { warn "Can't open test file: $!"; return; };
$self->new_get($event, \*TEST);
print "Saving incoming DCC SEND to /tmp/net-irc.dcctest\n";
} elsif(uc($type) eq 'CHAT') {
$self->new_chat($event);
} else {
print STDERR ("Unknown DCC type: " . $type);
}
}
Soweit so gut, leider funktioniert das ganze nicht wirklich ;)
Bei my $type muss die Zahl in der Klammer eine 0 sein, damit man bei einem DCC Chat/Send folgende Zeile in $type hat:
CHAT chat 12345 12345
oder
SEND file.name 12345 12345 12345
Was bedeuten eigentlich die ganzen Zahlen? Entziffern konnte ich nur bei SEND die letzte, das ist die Dateigröße...
Mein Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
sub on_dcc {
my ($self, $event) = @_;
my $type = ($event->args)[0];
if($type =~ /(SEND)\s(.*)\s(\d+)\s(\d+)\s(\d+)/) {
$kind = $1;
$name = $2;
$size = $5;
}
elsif($type =~ /(CHAT)\schat\s(\d+)\s(\d+)/) {
$kind = $1;
}
if ($kind eq 'SEND') {
$o_file = ">" . $name;
open(TEST, $o_file)
or do { warn "[!!] can not create incoming/" . $o_file . "\n";
next;
};
$self->new_get($event, \*TEST);
print "[OK] saving incoming DCC SEND to incoming/" . $name . "\n";
}
elsif($kind eq 'CHAT') {
$self->new_chat($event);
}
else {
print STDERR ("[!!] unknown DCC type: " . $kind . "\n");
}
}
Wenn ich jetzt dem "Bot" eine Datei per DCC anbiete, so passiert nicht, er nimmt es einfach nicht an, genau wie beim DCC Chat. Es passiert einfach nichts, aber wieso? Ich hoffe ihr könnt mir irgendwie helfen.
mfg
PS: Sorry für den Threadnamen, da ist beim Pasten wohl was schief gegangen, kann man den noch irgendwie ändern? :(\n\n
<!--EDIT|lostsoul|1091972090-->