core
14.07.2003, 18:03
folgendes:
ich bekomm nen text zugeschickt (vom irc server, also ohne nick usw) der so aussieht:
Information for channel ''
Creation time:: Mon Aug 11 02:30:53 2003
Topic:: <none>
Channel mode(s):: <none>
Users (@ = op, + = voice, * = clone)
@Q (TheQBot@cserve.irc4c.net) (The Q Bot)
@L (TheLBot@lightweight.service.irc4c.net) (go m00)
@ix7` (your@server2.web4clans.com) (ix7 is your god!) ix7
Total users:: 3 (3 ops, 0 voiced, 0 clones)
Bans on channel::
<none>
mit diesem code hier frag ich die ausgabe von oben ab. nun möchte ich aber das wenn in dem text von oben bei "Users" was mit "TheLBot@lightweight.service.irc4c.net" steht eine ausgabe bekommen, nen print langt erstmal. wenn nix von "TheLBot@lightweight.service.irc4c.net" auftaucht soll das script einfach weiterlaufen. also keine ausgabe.
hab gestern ewig dran gesessen und nix hinbekommen.
# CHECK parsing
if($buffer =~ /:server2.web4clans.com 286 $botnick :Information for channel (\S+)/i) {
my $chan=$1;
$chan =~ s/\'//g; # To handle different versions of qnet patch.
$check = 1; # Damn you Durzel.
$chandata = {
chan => "",
ctime => "",
topic => "",
modes => "",
users => "",
stats => ""};
$$chandata{'chan'}=$chan;
}
if($check) {
if($buffer =~ /:server2.web4clans.com 290 $botnick :.+Creation time:: (.+)$/i) {
$$chandata{'ctime'}=$1;
}
if($buffer =~ /:server2.web4clans.com 290 $botnick :.+Topic:: (.+)$/i) {
$$chandata{'topic'}=$1;
}
if($buffer =~ /:server2.web4clans.com 290 $botnick :.*Channel mode.s.:: (.+)$/i) {
$$chandata{'modes'}=($1);
chomp($$chandata{'modes'});
}
if($buffer =~ /:server2.web4clans.com 287 $botnick :\s+.\s+(\S+) \((\S+)\)\s+(.+)$/i) {
my $nick = $1;
my $host = $2;
my $ircname = $3;
$ircname =~ s/\r//; # Remove CR
$$chandata{'users'}=$$chandata{'users'} . "$nick!$host$ircname<br />\n";
}
if($buffer =~ /:server2.web4clans.com 290 $botnick :Total users:: (\d+) \S(\d+) ops, \d+ voiced, (\d+) clones\S/i) {
if($2 < 2) {
&connsend($$current{'conn'},<<"EOF");
<b>Failed:</b> you have too few users/ops on that channel.
</ul>
</body>
</html>
EOF
$select->remove($$current{'conn'});
$$current{'conn'}->close;
$check=0;
$ready=1;
next;
}
if($3 > 2) { # Allow 2 clones, in case of someone reconnecting.
&connsend($$current{'conn'},<<"EOF");
<b>Failed:</b> you have clones on that channel.</li>
</ul>
</body>
</html>
EOF
$select->remove($$current{'conn'});
$$current{'conn'}->close;
$check=0;
$ready=1;
next;
}
$$chandata{'stats'}="U: $1 O: $2 C: $3";
}
if($buffer =~ /:server2.web4clans.com 290 $botnick :Bans/i) {
&addtoqueue();
}
}
}
}
ich bekomm nen text zugeschickt (vom irc server, also ohne nick usw) der so aussieht:
Information for channel ''
Creation time:: Mon Aug 11 02:30:53 2003
Topic:: <none>
Channel mode(s):: <none>
Users (@ = op, + = voice, * = clone)
@Q (TheQBot@cserve.irc4c.net) (The Q Bot)
@L (TheLBot@lightweight.service.irc4c.net) (go m00)
@ix7` (your@server2.web4clans.com) (ix7 is your god!) ix7
Total users:: 3 (3 ops, 0 voiced, 0 clones)
Bans on channel::
<none>
mit diesem code hier frag ich die ausgabe von oben ab. nun möchte ich aber das wenn in dem text von oben bei "Users" was mit "TheLBot@lightweight.service.irc4c.net" steht eine ausgabe bekommen, nen print langt erstmal. wenn nix von "TheLBot@lightweight.service.irc4c.net" auftaucht soll das script einfach weiterlaufen. also keine ausgabe.
hab gestern ewig dran gesessen und nix hinbekommen.
# CHECK parsing
if($buffer =~ /:server2.web4clans.com 286 $botnick :Information for channel (\S+)/i) {
my $chan=$1;
$chan =~ s/\'//g; # To handle different versions of qnet patch.
$check = 1; # Damn you Durzel.
$chandata = {
chan => "",
ctime => "",
topic => "",
modes => "",
users => "",
stats => ""};
$$chandata{'chan'}=$chan;
}
if($check) {
if($buffer =~ /:server2.web4clans.com 290 $botnick :.+Creation time:: (.+)$/i) {
$$chandata{'ctime'}=$1;
}
if($buffer =~ /:server2.web4clans.com 290 $botnick :.+Topic:: (.+)$/i) {
$$chandata{'topic'}=$1;
}
if($buffer =~ /:server2.web4clans.com 290 $botnick :.*Channel mode.s.:: (.+)$/i) {
$$chandata{'modes'}=($1);
chomp($$chandata{'modes'});
}
if($buffer =~ /:server2.web4clans.com 287 $botnick :\s+.\s+(\S+) \((\S+)\)\s+(.+)$/i) {
my $nick = $1;
my $host = $2;
my $ircname = $3;
$ircname =~ s/\r//; # Remove CR
$$chandata{'users'}=$$chandata{'users'} . "$nick!$host$ircname<br />\n";
}
if($buffer =~ /:server2.web4clans.com 290 $botnick :Total users:: (\d+) \S(\d+) ops, \d+ voiced, (\d+) clones\S/i) {
if($2 < 2) {
&connsend($$current{'conn'},<<"EOF");
<b>Failed:</b> you have too few users/ops on that channel.
</ul>
</body>
</html>
EOF
$select->remove($$current{'conn'});
$$current{'conn'}->close;
$check=0;
$ready=1;
next;
}
if($3 > 2) { # Allow 2 clones, in case of someone reconnecting.
&connsend($$current{'conn'},<<"EOF");
<b>Failed:</b> you have clones on that channel.</li>
</ul>
</body>
</html>
EOF
$select->remove($$current{'conn'});
$$current{'conn'}->close;
$check=0;
$ready=1;
next;
}
$$chandata{'stats'}="U: $1 O: $2 C: $3";
}
if($buffer =~ /:server2.web4clans.com 290 $botnick :Bans/i) {
&addtoqueue();
}
}
}
}