commit f4633b9
default
·
2023-11-23 23:05:45 +0000 UTC
parent 7d7110c
Use xs_html in the static greeting page.
M
Makefile
+2,
-2
1@@ -43,8 +43,8 @@ html.o: html.c xs.h xs_io.h xs_json.h xs_regex.h xs_set.h xs_openssl.h \
2 http.o: http.c xs.h xs_io.h xs_openssl.h xs_curl.h xs_time.h xs_json.h \
3 snac.h
4 httpd.o: httpd.c xs.h xs_io.h xs_json.h xs_socket.h xs_httpd.h xs_mime.h \
5- xs_time.h xs_openssl.h xs_fcgi.h snac.h
6-main.o: main.c xs.h xs_io.h xs_json.h snac.h
7+ xs_time.h xs_openssl.h xs_fcgi.h xs_html.h snac.h
8+main.o: main.c xs.h xs_io.h xs_json.h snac.h xs_html.h
9 mastoapi.o: mastoapi.c xs.h xs_hex.h xs_openssl.h xs_json.h xs_io.h \
10 xs_time.h xs_glob.h xs_set.h xs_random.h xs_url.h xs_mime.h xs_match.h \
11 snac.h
M
httpd.c
+19,
-13
1@@ -10,6 +10,7 @@
2 #include "xs_time.h"
3 #include "xs_openssl.h"
4 #include "xs_fcgi.h"
5+#include "xs_html.h"
6
7 #include "snac.h"
8
9@@ -98,32 +99,37 @@ static xs_str *greeting_html(void)
10
11 /* does it have a %userlist% mark? */
12 if (xs_str_in(s, "%userlist%") != -1) {
13- const char *host = xs_dict_get(srv_config, "host");
14+ char *host = xs_dict_get(srv_config, "host");
15 xs *list = user_list();
16- xs_list *p;
17+ xs_list *p = list;
18 xs_str *uid;
19- xs *ul = xs_str_new("<ul class=\"snac-user-list\">\n");
20+
21+ xs_html *ul = xs_html_tag("ul",
22+ xs_html_attr("class", "snac-user-list"));
23
24 p = list;
25 while (xs_list_iter(&p, &uid)) {
26 snac user;
27
28 if (user_open(&user, uid)) {
29- xs *uname = encode_html(xs_dict_get(user.config, "name"));
30-
31- xs *u = xs_fmt(
32- "<li><a href=\"%s\">@%s@%s (%s)</a></li>\n",
33- user.actor, uid, host, uname);
34-
35- ul = xs_str_cat(ul, u);
36+ xs_html_add(ul,
37+ xs_html_tag("li",
38+ xs_html_tag("a",
39+ xs_html_attr("href", user.actor),
40+ xs_html_text("@"),
41+ xs_html_text(uid),
42+ xs_html_text("@"),
43+ xs_html_text(host),
44+ xs_html_text(" ("),
45+ xs_html_text(xs_dict_get(user.config, "name")),
46+ xs_html_text(")"))));
47
48 user_free(&user);
49 }
50 }
51
52- ul = xs_str_cat(ul, "</ul>\n");
53-
54- s = xs_replace_i(s, "%userlist%", ul);
55+ xs *s1 = xs_html_render(ul);
56+ s = xs_replace_i(s, "%userlist%", s1);
57 }
58 }
59