Forker => "NULL", ) );
&addCmdHook("main", 'tell|explain', ('CODEREF' => 'tell',
Help => 'tell', Identifier => 'allowTelling', ) );
-
+&addCmdHook("main", 'news', ('CODEREF' => 'News::Parse',
+ Module => 'news', Identifier => 'news') );
&status("CMD: loaded ".scalar(keys %hooks_main)." MAIN command hooks.");
push(@nicks, $_);
}
}
+ &DEBUG("nicks => '".scalar(@nicks)."'...");
+ if (scalar @nicks != $uucount) {
+ &DEBUG("nicks != uucount...");
+ }
my $chans = scalar(keys %channels);
&pSReply(
return;
}
- # ...
+ my $oldwho = $who;
+ my $oldmtype = $msgType;
+ $who = $target;
my $result = &doQuestion($tell_obj);
- # ^ returns '0' if nothing was found.
+ # ^ returns '0' if nothing was found.
+ $who = $oldwho;
# no such factoid.
if ($result =~ /^0?$/) {
- my $oldwho = $who;
- my $oldmtype = $msgType;
$who = $target;
$msgType = "private";
sub userCommands {
# conversion: ascii.
if ($message =~ /^(asci*|chr) (\d+)$/) {
- return '' unless (&IsParam("allowConv"));
+ return unless (&IsParam("allowConv"));
- $arg = $2;
- if ($arg < 32) {
- $arg += 64;
- $result = "^".chr($arg);
- } else {
- $result = chr($2);
- }
- $result = "NULL" if ($arg == 0);
+ $arg = $2;
+ $result = chr($arg);
+ $result = "NULL" if ($arg == 0);
&performReply( sprintf("ascii %s is '%s'", $arg, $result) );
+
return;
}
# conversion: ord.
if ($message =~ /^ord (.)$/) {
- return '' unless (&IsParam("allowConv"));
+ return unless (&IsParam("allowConv"));
$arg = $1;
if (ord($arg) < 32) {
# hex.
if ($message =~ /^hex(\s+(.*))?$/i) {
+ return unless (&IsParam("allowConv"));
my $arg = $2;
if (!defined $arg) {
}
# crypt.
- if ($message =~ /^crypt\s+(\S+)\s*(?:,| )\s*(\S+)/) {
- # word salt.
- &pSReply(crypt($1, $2));
- return;
- }
+ if ($message =~ /^crypt(\s+(.*))?$/i) {
+ my @args = split /\s+/, $2;
+ if (!scalar @args or scalar @args > 2) {
+ &help("crypt");
+ return;
+ }
+ if (scalar @args == 2) {
+ if (length $args[0] != 2) {
+ &msg($who, "invalid format...");
+ return;
+ }
+
+ &pSReply( crypt($args[1], $args[0]) );
+ } else {
+ &pSReply( &mkcrypt($args[0]) );
+ }
+
+ return;
+ }
# cycle.
if ($message =~ /^(cycle)(\s+(\S+))?$/i) {
my @redir;
&status("Redirect '$factoid' (". ($#list) .")...");
for (@list) {
+ my $x = $_;
next if (/^\Q$factoid\E$/i);
&status(" Redirecting '$_'.");
my $was = &getFactoid($_);
+ if ($was =~ /<REPLY> see/i) {
+ &status("warn: not redirecting a redirection.");
+ next;
+ }
+
&DEBUG(" was '$was'.");
- push(@redir,$_);
- &setFactInfo($_, "factoid_value", "<REPLY> see $factoid");
+ push(@redir,$x);
+ &setFactInfo($x, "factoid_value", "<REPLY> see $factoid");
}
&status("Done.");
}
# ircstats.
- if ($message =~ /^ircstats$/i) {
+ if ($message =~ /^ircstats?$/i) {
+ $ircstats{'TotalTime'} ||= 0;
+ $ircstats{'OffTime'} ||= 0;
+
my $count = $ircstats{'ConnectCount'};
my $format_time = &Time2String(time() - $ircstats{'ConnectTime'});
+ my $total_time = time() - $ircstats{'ConnectTime'} +
+ $ircstats{'TotalTime'};
my $reply;
- foreach (keys %ircstats) {
- &DEBUG("ircstats: $_ => '$ircstats{$_}'.");
+ my $connectivity = 100 * ($total_time - $ircstats{'OffTime'}) /
+ $total_time;
+ my $p = sprintf("%.02f", $connectivity);
+ $p =~ s/(\.\d*)0+$/$1/;
+ if ($p =~ s/\.0$//) {
+ &DEBUG("p sar not working properly :(");
+ } else {
+ $p =~ s/\.$//
+ }
+
+ &DEBUG("connectivity => $p %");
+
+ if ($total_time != (time() - $ircstats{'ConnectTime'}) ) {
+ my $tt_format = &Time2String($total_time);
+ &DEBUG("tt_format => $tt_format");
}
### RECONNECT COUNT.