summaryrefslogtreecommitdiff
path: root/httpd.c
diff options
context:
space:
mode:
authordefault <nobody@localhost>2023-11-24 00:05:45 +0100
committerdefault <nobody@localhost>2023-11-24 00:05:45 +0100
commitf4633b9356ff26deb12587bf922db9b82c0e0bda (patch)
tree68fea7cfb9b2b4f026584d56f1ad2d33d2ce2752 /httpd.c
parent7d7110cb3b1262d348510ab686e7139f60a04791 (diff)
Use xs_html in the static greeting page.
Diffstat (limited to 'httpd.c')
-rw-r--r--httpd.c32
1 files changed, 19 insertions, 13 deletions
diff --git a/httpd.c b/httpd.c
index c398c05..3f4e9f0 100644
--- a/httpd.c
+++ b/httpd.c
@@ -10,6 +10,7 @@
#include "xs_time.h"
#include "xs_openssl.h"
#include "xs_fcgi.h"
+#include "xs_html.h"
#include "snac.h"
@@ -98,32 +99,37 @@ static xs_str *greeting_html(void)
/* does it have a %userlist% mark? */
if (xs_str_in(s, "%userlist%") != -1) {
- const char *host = xs_dict_get(srv_config, "host");
+ char *host = xs_dict_get(srv_config, "host");
xs *list = user_list();
- xs_list *p;
+ xs_list *p = list;
xs_str *uid;
- xs *ul = xs_str_new("<ul class=\"snac-user-list\">\n");
+
+ xs_html *ul = xs_html_tag("ul",
+ xs_html_attr("class", "snac-user-list"));
p = list;
while (xs_list_iter(&p, &uid)) {
snac user;
if (user_open(&user, uid)) {
- xs *uname = encode_html(xs_dict_get(user.config, "name"));
-
- xs *u = xs_fmt(
- "<li><a href=\"%s\">@%s@%s (%s)</a></li>\n",
- user.actor, uid, host, uname);
-
- ul = xs_str_cat(ul, u);
+ xs_html_add(ul,
+ xs_html_tag("li",
+ xs_html_tag("a",
+ xs_html_attr("href", user.actor),
+ xs_html_text("@"),
+ xs_html_text(uid),
+ xs_html_text("@"),
+ xs_html_text(host),
+ xs_html_text(" ("),
+ xs_html_text(xs_dict_get(user.config, "name")),
+ xs_html_text(")"))));
user_free(&user);
}
}
- ul = xs_str_cat(ul, "</ul>\n");
-
- s = xs_replace_i(s, "%userlist%", ul);
+ xs *s1 = xs_html_render(ul);
+ s = xs_replace_i(s, "%userlist%", s1);
}
}