commit 49b226a

default  ·  2024-02-21 07:27:11 +0000 UTC
parent bc3c7dd
Started an instance page.
1 files changed,  +23, -1
M html.c
M html.c
+23, -1
 1@@ -698,6 +698,8 @@ static xs_html *html_user_body(snac *user, int read_only)
 2         xs *admin_url = xs_fmt("%s/admin", user->actor);
 3         xs *notify_url = xs_fmt("%s/notifications", user->actor);
 4         xs *people_url = xs_fmt("%s/people", user->actor);
 5+        xs *instance_url = xs_fmt("%s/instance", user->actor);
 6+
 7         xs_html_add(top_nav,
 8             xs_html_tag("a",
 9                 xs_html_attr("href", user->actor),
10@@ -714,7 +716,11 @@ static xs_html *html_user_body(snac *user, int read_only)
11             xs_html_text(" - "),
12             xs_html_tag("a",
13                 xs_html_attr("href", people_url),
14-                xs_html_text(L("people"))));
15+                xs_html_text(L("people"))),
16+            xs_html_text(" - "),
17+            xs_html_tag("a",
18+                xs_html_attr("href", instance_url),
19+                xs_html_text(L("instance"))));
20     }
21 
22     xs_html_add(body,
23@@ -1962,6 +1968,7 @@ xs_str *html_timeline(snac *user, const xs_list *list, int read_only,
24     }
25 
26     if (list && user && read_only) {
27+        /** history **/
28         if (xs_type(xs_dict_get(srv_config, "disable_history")) != XSTYPE_TRUE) {
29             xs_html *ul = xs_html_tag("ul", NULL);
30 
31@@ -2495,6 +2502,21 @@ int html_get_handler(const xs_dict *req, const char *q_path,
32         }
33     }
34     else
35+    if (strcmp(p_path, "instance") == 0) { /** instance timeline **/
36+        if (!login(&snac, req)) {
37+            *body  = xs_dup(uid);
38+            status = 401;
39+        }
40+        else {
41+            xs *list = timeline_instance_list(skip, show);
42+            xs *next = timeline_instance_list(skip + show, 1);
43+
44+            *body = html_timeline(&snac, list, 0, skip, show, xs_list_len(next), NULL, "/instance");
45+            *b_size = strlen(*body);
46+            status  = 200;
47+        }
48+    }
49+    else
50     if (xs_startswith(p_path, "p/")) { /** a timeline with just one entry **/
51         if (xs_type(xs_dict_get(snac.config, "private")) == XSTYPE_TRUE)
52             return 403;