X-Git-Url: https://ruin.nu/git/?p=ND.git;a=blobdiff_plain;f=Include.pm;h=7f960575681d7a31c8166e6f69e1655c44e293c0;hp=ba1768ee3447c27c4c1747389f0748bd0d6dad9f;hb=245cb3b058157d719b02be466e1b4deaa72fc986;hpb=a5a98638b819da191a4a3191f4509a172e0d1af9 diff --git a/Include.pm b/Include.pm index ba1768e..7f96057 100644 --- a/Include.pm +++ b/Include.pm @@ -91,20 +91,23 @@ sub def_log { sub pa_xp { my ($roids,$ascore,$avalue,$tscore,$tvalue) = @_; - my $bravery = (max(0,min(2,$tscore/$ascore)-0.6)) * (min(2,$tvalue/$avalue)-0.4); + my $bravery = (max(0,min(2,$tscore/$ascore)-0.2)) * (min(2,$tvalue/$avalue)-0.1); return int(max($roids * 10 * $bravery,0)) } sub unread_query { - return $ND::DBH->prepare_cached(q{ - SELECT count(*) AS unread, count(NULLIF(fp.time > $2,FALSE)) AS new -FROM forum_boards fb NATURAL JOIN forum_threads ft - JOIN forum_posts fp USING (ftid) LEFT OUTER JOIN - (SELECT * FROM forum_thread_visits WHERE uid = $1) ftv ON ftv.ftid = ft.ftid -WHERE (ftv.time IS NULL OR fp.time > ftv.time) AND fbid > 0 AND - fbid IN (SELECT fbid FROM forum_access WHERE gid IN (SELECT groups($1))) - }); + return q{ + SELECT count(*) AS unread, count(NULLIF(fp.time > (SELECT max(time) + FROM forum_thread_visits WHERE uid = $1),FALSE)) AS new + FROM forum_threads ft + JOIN forum_posts fp USING (ftid) + LEFT OUTER JOIN (SELECT * FROM forum_thread_visits + WHERE uid = $1) ftv ON ftv.ftid = ft.ftid + WHERE (ftv.time IS NULL OR fp.time > ftv.time) AND fbid > 0 + AND fbid IN (SELECT fbid FROM forum_access + WHERE gid IN (SELECT groups($1))) + }; } 1;