commit 8d06540

default  ·  2024-11-05 17:19:01 +0000 UTC
parent c00b211
New server variable 'strict_public_timelines'.
1 files changed,  +13, -3
M html.c
M html.c
+13, -3
 1@@ -2168,6 +2168,7 @@ xs_str *html_timeline(snac *user, const xs_list *list, int read_only,
 2     xs_list *p = (xs_list *)list;
 3     const char *v;
 4     double t = ftime();
 5+    int hide_children = xs_is_true(xs_dict_get(srv_config, "strict_public_timelines"));
 6 
 7     xs *desc = NULL;
 8     xs *alternate = NULL;
 9@@ -2329,7 +2330,7 @@ xs_str *html_timeline(snac *user, const xs_list *list, int read_only,
10             }
11         }
12 
13-        xs_html *entry = html_entry(user, msg, read_only, 0, v, user ? 0 : 1);
14+        xs_html *entry = html_entry(user, msg, read_only, 0, v, (user && !hide_children) ? 0 : 1);
15 
16         if (entry != NULL)
17             xs_html_add(posts,
18@@ -2844,8 +2845,17 @@ int html_get_handler(const xs_dict *req, const char *q_path,
19                         xs_dict_get(req, "if-none-match"), etag);
20         }
21         else {
22-            xs *list = timeline_list(&snac, "public", skip, show);
23-            xs *next = timeline_list(&snac, "public", skip + show, 1);
24+            xs *list = NULL;
25+            xs *next = NULL;
26+
27+            if (xs_is_true(xs_dict_get(srv_config, "strict_public_timelines"))) {
28+                list = timeline_simple_list(&snac, "public", skip, show);
29+                next = timeline_simple_list(&snac, "public", skip + show, 1);
30+            }
31+            else {
32+                list = timeline_list(&snac, "public", skip, show);
33+                next = timeline_list(&snac, "public", skip + show, 1);
34+            }
35 
36             xs *pins = pinned_list(&snac);
37             pins = xs_list_cat(pins, list);