summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-rw-r--r--lib/Multi/IRC.pm16
1 files changed, 10 insertions, 6 deletions
diff --git a/lib/Multi/IRC.pm b/lib/Multi/IRC.pm
index 4f417083..5018d2aa 100644
--- a/lib/Multi/IRC.pm
+++ b/lib/Multi/IRC.pm
@@ -190,7 +190,7 @@ sub irc_001 {
sub irc_public { # mask, dest, msg
- $_[HEAP]{idlequotes}{$_[ARG1][0]} = 0;
+ $_[HEAP]{idlequotes}{ lc($_[ARG1][0]) } = 0;
return if $_[KERNEL]->call($_[SESSION] => command => @_[ARG0..$#_]);
$_[KERNEL]->call($_[SESSION] => vndbid => $_[ARG1], $_[ARG2]);
}
@@ -223,11 +223,14 @@ sub command { # mask, dest, msg
my $lvl = $_[HEAP]{commands}{$cmd} & ~8;
my $usr = parse_user($mask);
+ my $ulvl = grep(matches_mask($_, $mask), @{$_[HEAP]{masters}}) ? 2 :
+ ($irc->is_channel_operator($_[HEAP]{channels}[0], $usr) || $irc->is_channel_owner($_[HEAP]{channels}[0], $usr)) ? 1 : 0;
+
return $_[KERNEL]->yield(reply => $dest,
$dest->[0] eq $_[HEAP]{channels}[0] ? 'Only OPs can do that!' : "Only $_[HEAP]{channel}[0] OPs can do that!", $usr) || 1
- if $lvl == 1 && !$irc->is_channel_operator($_[HEAP]{channels}[0], $usr);
+ if $lvl == 1 && $ulvl < 1;
return $_[KERNEL]->yield(reply => $dest, 'You are not my master!', $usr) || 1
- if $lvl == 2 && !grep matches_mask($_, $mask), @{$_[HEAP]{masters}};
+ if $lvl == 2 && $ulvl < 2;
return $_[KERNEL]->yield('cmd_'.$cmd, $usr, $dest, $arg, $mask) || 1;
}
@@ -237,7 +240,7 @@ sub idlequote {
for (keys %{$_[HEAP]{idlequotes}}) {
next if --$_[HEAP]{idlequotes}{$_} > 0;
$_[KERNEL]->yield(cmd_quote => '', [$_]) if $_[HEAP]{idlequotes}{$_} == 0;
- $_[HEAP]{idlequotes}{$_} = int(60+rand(300));
+ $_[HEAP]{idlequotes}{$_} = int(120+rand(600));
}
$_[KERNEL]->delay(idlequote => 60);
}
@@ -270,7 +273,7 @@ sub notify { # name, pid, payload
LEFT JOIN releases_rev rr ON c.type = 1 AND c.id = rr.id
LEFT JOIN producers_rev pr ON c.type = 2 AND c.id = pr.id
JOIN users u ON u.id = c.requester
- WHERE c.id > ?
+ WHERE c.id > ? AND c.requester <> 1
ORDER BY c.added|
: $_[ARG0] eq 'newpost' ? q|SELECT
't' AS type, tp.tid AS id, tp.num AS rev, t.title, u.username, tp.date AS lastpost, |.GETBOARDS.q|
@@ -292,7 +295,7 @@ sub notify { # name, pid, payload
sub notify_result { # num, res
return if $_[ARG0] < 1;
- my $r = $_[ARG1][0];
+ my $r = $_[ARG1][$#{$_[ARG1]}];
$_[HEAP]{lastrev} = $r->{lastrev} if $r->{lastrev};
$_[HEAP]{lastpost} = $r->{lastpost} if $r->{lastpost};
$_[HEAP]{lasttag} = $r->{lasttag} if $r->{lasttag};
@@ -558,6 +561,7 @@ sub formatid {
push @msg, RED.'By'.NORMAL.' '.$_->{username} if $_->{username};
# (only if comments key is present) Summary:
+ $_->{comments} =~ s/\n/ /g if $_->{comments};
push @msg, RED.'Summary:'.NORMAL.' '.(
length $_->{comments} > 40 ? substr($_->{comments}, 0, 37).'...' : $_->{comments}
) if defined $_->{comments};