From 66f6453dcc901189c8a82b4f859fe44d86284244 Mon Sep 17 00:00:00 2001 From: Michael Andreen Date: Wed, 12 Nov 2008 21:34:21 +0100 Subject: [PATCH] Allow min claim and forum dates for laston --- Usermgm.pm | 34 ++++++++++++++++++++-------------- 1 file changed, 20 insertions(+), 14 deletions(-) diff --git a/Usermgm.pm b/Usermgm.pm index c579a3c..2de54a2 100644 --- a/Usermgm.pm +++ b/Usermgm.pm @@ -133,25 +133,31 @@ WHERE flag = ?; sub laston { my ($msg, $command) = @_; - my ($flag,$min); - my $f; if (officer() || ia()){ - if(defined $msg && $msg =~ /^(\w)(?: (\d+))?$/){ + my ($flag,$min); + my $f; + if(defined $msg && $msg =~ /^(\w)(?: (\d+)(?:\|(\d+)\|(\d+))?)?$/){ $flag = $1; $min = $2; + my $forum = $3; + my $claim = $4; $min = 0 unless defined $min; - $f = $ND::DBH->prepare(q{SELECT username - ,date_part('day',now() - laston)::int AS last - ,COALESCE(date_part('day',now() - (SELECT max(time) FROM forum_thread_visits WHERE uid = u.uid))::text,'?') - AS lastforum - ,COALESCE(date_part('day',now() - (SELECT max(timestamp) FROM raid_claims WHERE uid = u.uid))::text,'?') AS lastclaim - FROM users u - NATURAL JOIN groupmembers - NATURAL JOIN groups - WHERE flag = $1 AND COALESCE(date_part('day',now() - laston) >= $2,TRUE) - ORDER BY laston + $f = $ND::DBH->prepare(q{SELECT username, last + ,COALESCE(lastforum::text,'?') AS lastforum + ,COALESCE(lastclaim::text,'?') AS lastclaim + FROM (SELECT username + ,date_part('day',now() - laston)::int AS last + ,date_part('day',now() - (SELECT max(time) FROM forum_thread_visits WHERE uid = u.uid)) AS lastforum + ,date_part('day',now() - (SELECT max(timestamp) FROM raid_claims WHERE uid = u.uid)) AS lastclaim + FROM users u + NATURAL JOIN groupmembers + NATURAL JOIN groups + WHERE flag = $1 + ) a + WHERE COALESCE(last >= $2,TRUE) AND COALESCE(lastforum >= $3,TRUE) AND COALESCE(lastclaim >= $4,TRUE) + ORDER BY last DESC, lastforum DESC, lastclaim DESC }); - $f->execute($flag,$min); + $f->execute($flag,$min,$forum,$claim); }elsif(defined $msg && $msg =~ /^(\S+)$/){ $f = $ND::DBH->prepare(q{SELECT username ,date_part('day',now() - laston)::int AS last -- 2.39.2