privmsg($event->{to}->[0], "This bot has been running for " . (time - $::starttime) . " seconds" .
", is tracking " . (scalar (keys %::sn)) . " nicks" .
" across " . (scalar (keys %::sc)) . " tracked channels." .
" It is using " . $size . "KB of RAM" .
" and has used " . $cputime . " of CPU time.");
]]>
privmsg($event->{to}->[0], $1 . " is on: " . ASM::Util->commaAndify(@{$::sn{lc $1}->{mship}}));
]]>
privmsg($event->{to}->[0], "source is at http://svn.linuxrulz.org/repos/antispammeta");
]]>
{DBH};
if ($1 eq 'log') {
$dbh = $::db->{DBH_LOG};
}
$::db->raw($conn, $event->{to}->[0], $dbh, $2);
]]>
getLink(lc $chan);
if ( lc $link ne lc $chan ) {
$conn->privmsg($event->{to}->[0], "Error: $chan is linked to $link - use $link instead.");
return;
}
$::channels->{channel}->{$chan}->{monitor} = $switch;
ASM::XML->writeChannels();
$conn->privmsg($event->{to}->[0], "Monitor flag for $chan set to $switch");
]]>
privmsg($event->{to}->[0], "help is at http://meta.wikimedia.org/wiki/User:WHeimbigner/AntiSpamMeta");
$conn->privmsg($event->{to}->[0], "You can also get faster help by emailing william dot heimbigner at ttu dot edu - or bug ErrantEgo or tomaw");
]]>
privmsg($event->{to}->[0], "db is at http://antispammeta.net/query.html");
]]>
query($channel, $nuh[0], $nuh[2], $nuh[4]);
$conn->privmsg($event->{to}->[0], "$result results found.");
]]>
privmsg($event->{to}->[0], "The d flag may not be assigned over IRC. Edit the configuration manually.");
return;
}
$::users->{person}->{$acct} = { 'flags' => $flags };
ASM::XML->writeUsers();
$conn->privmsg($event->{to}->[0], "Flags for NickServ account $acct set to $flags");
]]>
privmsg($event->{to}->[0], "This command has been deprecated");
]]>
{person}->{$nick}->{flags})) {
$conn->privmsg($event->{to}->[0], "Flags for $nick: $::users->{person}->{$nick}->{flags}");
} else {
$conn->privmsg($event->{to}->[0], "$nick has no flags");
}
]]>
privmsg($event->{to}->[0], "The d flag may not be assigned over IRC. Edit the configuration manually.");
return;
}
$::users->{person}->{$nick}->{flags} = $flags;
ASM::XML->writeUsers();
$conn->privmsg($event->{to}->[0], "Flags for $nick set to $flags");
]]>
{person}->{$nick});
ASM::XML->writeUsers();
$conn->privmsg($event->{to}->[0], "Byebye $nick");
]]>
getLink(lc $chan);
if ( lc $link ne lc $chan ) {
$conn->privmsg($event->{to}->[0], "Error: $chan is linked to $link - use $link instead.");
return;
}
if ($level eq '') { $level = 'low'; }
unless (defined($::channels->{channel}->{$chan}->{msgs})) {
$::channels->{channel}->{$chan}->{msgs} = {};
}
unless (defined($::channels->{channel}->{$chan}->{msgs}->{$level})) {
$::channels->{channel}->{$chan}->{msgs}->{$level} = [];
}
my @tmphl = @{$::channels->{channel}->{$chan}->{msgs}->{$level}};
push(@tmphl, $nick);
$::channels->{channel}->{$chan}->{msgs}->{$level} = \@tmphl;
ASM::XML->writeChannels();
$conn->privmsg($event->{to}->[0], "$nick added to $level risk messages for $chan");
]]>
getLink(lc $chan);
if ( lc $link ne lc $chan ) {
$conn->privmsg($event->{to}->[0], "Error: $chan is linked to $link - use $link instead.");
return;
}
foreach my $risk ( keys %::RISKS ) {
next unless defined($::channels->{channel}->{$chan}->{msgs}->{$risk});
my @ppl = @{$::channels->{channel}->{$chan}->{msgs}->{$risk}};
@ppl = grep { lc $_ ne lc $nick } @ppl;
$::channels->{channel}->{$chan}->{msgs}->{$risk} = \@ppl;
}
ASM::XML->writeChannels();
$conn->privmsg($event->{to}->[0], "$nick removed from targets for $chan");
]]>
{channel}})) {
foreach my $level (keys(%{$::channels->{channel}->{$chan}->{hilights}})) {
if (grep(/^${nick}$/i, @{$::channels->{channel}->{$chan}->{hilights}->{$level}})) {
push @channels, $chan . " ($level)";
}
}
}
if (! @channels) {
$conn->privmsg($event->{to}->[0], "$nick isn't on any hilights");
} else {
$conn->privmsg($event->{to}->[0], "$nick is hilighted for " . join(', ', @channels));
}
]]>
privmsg($event->{to}->[0], "Error: I don't recognize $level as a valid level.");
return;
}
my $link = ASM::Util->getLink(lc $chan);
if ( lc $link ne lc $chan ) {
$conn->privmsg($event->{to}->[0], "Error: $chan is linked to $link - use $link instead.");
return;
}
unless (defined($::channels->{channel}->{$chan}->{hilights})) {
$::channels->{channel}->{$chan}->{hilights} = {};
}
unless (defined($::channels->{channel}->{$chan}->{hilights}->{$level})) {
$::channels->{channel}->{$chan}->{hilights}->{$level} = [];
}
foreach my $nick (@nicks) {
my @tmphl = @{$::channels->{channel}->{$chan}->{hilights}->{$level}};
push(@tmphl, $nick);
$::channels->{channel}->{$chan}->{hilights}->{$level} = \@tmphl;
}
ASM::XML->writeChannels();
$conn->privmsg($event->{to}->[0], ASM::Util->commaAndify(@nicks) . " added to $level risk hilights for $chan");
]]>
getLink(lc $chan);
if ( lc $link ne lc $chan ) {
$conn->privmsg($event->{to}->[0], "Error: $chan is linked to $link - use $link instead.");
return;
}
foreach my $risk ( keys %::RISKS ) {
next unless defined($::channels->{channel}->{$chan}->{hilights}->{$risk});
my @ppl = @{$::channels->{channel}->{$chan}->{hilights}->{$risk}};
foreach my $nick (@nicks) {
@ppl = grep { lc $_ ne lc $nick } @ppl;
}
$::channels->{channel}->{$chan}->{hilights}->{$risk} = \@ppl;
}
ASM::XML->writeChannels();
$conn->privmsg($event->{to}->[0], "Removing hilights for " . ASM::Util->commaAndify(@nicks) . " in $chan");
]]>
{channel}->{$chan})) {
$::channels->{channel}->{$chan} = { };
ASM::XML->writeChannels();
}
$conn->join($chan);
my @autojoins = @{$::settings->{autojoins}};
@autojoins = (@autojoins, $chan);
$::settings->{autojoins} = \@autojoins;
ASM::XML->writeSettings();
]]>
part($chan);
my @autojoins = @{$::settings->{autojoins}};
@autojoins = grep { lc $_ ne lc $chan } @autojoins;
$::settings->{autojoins} = \@autojoins;
ASM::XML->writeSettings();
]]>
sl($1);
]]>
quit($1);
]]>
readXML();
my @strbl = io('string_blacklist.txt')->getlines;
chomp @strbl;
@::string_blacklist = @strbl;
my @eline=io('exempt.txt')->getlines;
chomp @eline;
%::eline = ();
foreach my $item (@eline) {
$::eline{lc $item} = 1;
}
$conn->privmsg($event->{to}->[0], 'config files were re-read');
]]>
privmsg($event->{to}->[0], $1);
]]>
me($event->{to}->[0], $1);
]]>
privmsg($event->{to}->[0], "This command is now deprecated. Use ;restrict nick/account/host lineToRestrict +notrigger instead, i.e. ;restrict account eir +notrigger");
]]>
{$type . 's'}->{$type}->{$who}->{$restriction};
$conn->privmsg($event->{to}->[0], "Removed $restriction restriction for $type $who");
}
if ($mode eq '+') {
if (! defined($::restrictions->{$type . 's'}->{$type}->{$who})) {
$::restrictions->{$type . 's'}->{$type}->{$who} = {};
}
$::restrictions->{$type . 's'}->{$type}->{$who}->{$restriction} = $restriction;
$conn->privmsg($event->{to}->[0], "Added $restriction restriction for $type $who");
}
ASM::XML->writeRestrictions();
]]>
notRestricted(lc $event->{nick}, "noops")) {
my $tgt = $event->{to}->[0];
$tgt = $1 if (defined($1));
my $msg = $1;
$msg = $2 if defined($2);
unless (defined($::ignored{$tgt}) && ($::ignored{$tgt} >= $::RISKS{'opalert'})) {
$::ignored{$tgt} = $::RISKS{'opalert'};
$conn->schedule(30, sub { delete($::ignored{$tgt})});
my $hilite=ASM::Util->commaAndify(ASM::Util->getAlert($tgt, 'opalert', 'hilights'));
my $txtz = "[\x02$tgt\x02] - $event->{nick} wants op attention ($msg) $hilite";
my @tgts = ASM::Util->getAlert($tgt, 'opalert', 'msgs');
ASM::Util->sendLongMsg($conn, \@tgts, $txtz);
}
}
]]>
> io 'string_blacklist.txt';
$conn->privmsg($event->{to}->[0], "$str blacklisted");
]]>
{nick} plugin)\x02 - ${reason}; ping ";
$txtz = $txtz . ASM::Util->commaAndify(ASM::Util->getAlert(lc $chan, $risk, 'hilights')) if (ASM::Util->getAlert(lc $chan, $risk, 'hilights'));
$txtz = $txtz . ' !att-' . $chan . '-' . $risk;
my @tgts = ASM::Util->getAlert($chan, $risk, 'msgs');
if (length($txtz) <= 380) {
$conn->privmsg(\@tgts, $txtz);
} else {
my $splitpart = rindex($txtz, " ", 380);
$conn->privmsg(\@tgts, substr($txtz, 0, $splitpart));
$conn->privmsg(\@tgts, substr($txtz, $splitpart));
}
]]>