]> ruin.nu Git - ndwebbie.git/commitdiff
Only list threads with posts in the last 50 days as new and unread
authorMichael Andreen <harv@ruin.nu>
Sat, 20 Jun 2020 12:52:43 +0000 (14:52 +0200)
committerMichael Andreen <harv@ruin.nu>
Sat, 20 Jun 2020 12:52:43 +0000 (14:52 +0200)
database/functions/unread_posts.sql
database/ndawn.sql
lib/NDWeb/Controller/Forum.pm

index 9c0023a2969084a0d6cc2ec36655201f8e57ec33..12a69ae3e6a6dba2373317826fb5219a7b62793b 100644 (file)
@@ -7,7 +7,8 @@ FROM(
        FROM forum_threads ft
                LEFT OUTER JOIN (SELECT * FROM forum_thread_visits WHERE uid = $1)
                        ftv USING (ftid)
-       WHERE COALESCE(ft.mtime > ftv.time,TRUE)
+       WHERE ft.mtime > NOW() - '50 days'::interval
+               AND COALESCE(ft.mtime > ftv.time,TRUE)
                AND ((fbid > 0 AND
                                fbid IN (SELECT fbid FROM forum_access WHERE gid IN (SELECT groups($1)))
                        ) OR ft.ftid IN (SELECT ftid FROM forum_priv_access WHERE uid = $1)
index 2da8987c6f2f16ad7bcd5e16dee86e169be1783e..1853e4fc014b2cb5449d05721d8c884a9f2aa834 100644 (file)
@@ -3316,6 +3316,8 @@ CREATE INDEX forum_posts_ftid_index ON forum_posts USING btree (ftid);
 CREATE INDEX forum_posts_textsearch_index ON forum_posts USING gin (textsearch);
 
 
+CREATE INDEX forum_threads_mtime_index ON forum_threads USING btree (mtime);
+
 --
 -- Name: groupmembers_uid_key; Type: INDEX; Schema: public; Owner: ndawn
 --
index bf7dc3ca8f11b76788ef52aa4cc8bbc2b4e72582..f06848de982c5e8da0391b5c27ec3bf5ae9733ab 100644 (file)
@@ -73,7 +73,8 @@ FROM forum_categories fc
        JOIN users u ON u.uid = ft.uid
        LEFT OUTER JOIN (SELECT * FROM forum_thread_visits WHERE uid = $1)
                ftv ON ftv.ftid = ft.ftid
-WHERE COALESCE(ft.mtime > ftv.time,TRUE)
+WHERE ft.mtime > NOW() - '50 days'::interval
+       AND COALESCE(ft.mtime > ftv.time,TRUE)
        AND ft.ftid IN (SELECT ftid FROM forum_posts WHERE ftid = ft.ftid)
        AND ((fbid > 0 AND
                        fb.fbid IN (SELECT fbid FROM forum_access WHERE gid IN (SELECT groups($1))))