summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar default2023-11-24 00:05:45 +0100
committerGravatar default2023-11-24 00:05:45 +0100
commitf4633b9356ff26deb12587bf922db9b82c0e0bda (patch)
tree68fea7cfb9b2b4f026584d56f1ad2d33d2ce2752
parentNew function html_base_head(). (diff)
downloadsnac2-f4633b9356ff26deb12587bf922db9b82c0e0bda.tar.gz
snac2-f4633b9356ff26deb12587bf922db9b82c0e0bda.tar.xz
snac2-f4633b9356ff26deb12587bf922db9b82c0e0bda.zip
Use xs_html in the static greeting page.
-rw-r--r--Makefile4
-rw-r--r--httpd.c32
2 files changed, 21 insertions, 15 deletions
diff --git a/Makefile b/Makefile
index 9374792..2612b7d 100644
--- a/Makefile
+++ b/Makefile
@@ -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 \
43http.o: http.c xs.h xs_io.h xs_openssl.h xs_curl.h xs_time.h xs_json.h \ 43http.o: http.c xs.h xs_io.h xs_openssl.h xs_curl.h xs_time.h xs_json.h \
44 snac.h 44 snac.h
45httpd.o: httpd.c xs.h xs_io.h xs_json.h xs_socket.h xs_httpd.h xs_mime.h \ 45httpd.o: httpd.c xs.h xs_io.h xs_json.h xs_socket.h xs_httpd.h xs_mime.h \
46 xs_time.h xs_openssl.h xs_fcgi.h snac.h 46 xs_time.h xs_openssl.h xs_fcgi.h xs_html.h snac.h
47main.o: main.c xs.h xs_io.h xs_json.h snac.h 47main.o: main.c xs.h xs_io.h xs_json.h snac.h xs_html.h
48mastoapi.o: mastoapi.c xs.h xs_hex.h xs_openssl.h xs_json.h xs_io.h \ 48mastoapi.o: mastoapi.c xs.h xs_hex.h xs_openssl.h xs_json.h xs_io.h \
49 xs_time.h xs_glob.h xs_set.h xs_random.h xs_url.h xs_mime.h xs_match.h \ 49 xs_time.h xs_glob.h xs_set.h xs_random.h xs_url.h xs_mime.h xs_match.h \
50 snac.h 50 snac.h
diff --git a/httpd.c b/httpd.c
index c398c05..3f4e9f0 100644
--- a/httpd.c
+++ b/httpd.c
@@ -10,6 +10,7 @@
10#include "xs_time.h" 10#include "xs_time.h"
11#include "xs_openssl.h" 11#include "xs_openssl.h"
12#include "xs_fcgi.h" 12#include "xs_fcgi.h"
13#include "xs_html.h"
13 14
14#include "snac.h" 15#include "snac.h"
15 16
@@ -98,32 +99,37 @@ static xs_str *greeting_html(void)
98 99
99 /* does it have a %userlist% mark? */ 100 /* does it have a %userlist% mark? */
100 if (xs_str_in(s, "%userlist%") != -1) { 101 if (xs_str_in(s, "%userlist%") != -1) {
101 const char *host = xs_dict_get(srv_config, "host"); 102 char *host = xs_dict_get(srv_config, "host");
102 xs *list = user_list(); 103 xs *list = user_list();
103 xs_list *p; 104 xs_list *p = list;
104 xs_str *uid; 105 xs_str *uid;
105 xs *ul = xs_str_new("<ul class=\"snac-user-list\">\n"); 106
107 xs_html *ul = xs_html_tag("ul",
108 xs_html_attr("class", "snac-user-list"));
106 109
107 p = list; 110 p = list;
108 while (xs_list_iter(&p, &uid)) { 111 while (xs_list_iter(&p, &uid)) {
109 snac user; 112 snac user;
110 113
111 if (user_open(&user, uid)) { 114 if (user_open(&user, uid)) {
112 xs *uname = encode_html(xs_dict_get(user.config, "name")); 115 xs_html_add(ul,
113 116 xs_html_tag("li",
114 xs *u = xs_fmt( 117 xs_html_tag("a",
115 "<li><a href=\"%s\">@%s@%s (%s)</a></li>\n", 118 xs_html_attr("href", user.actor),
116 user.actor, uid, host, uname); 119 xs_html_text("@"),
117 120 xs_html_text(uid),
118 ul = xs_str_cat(ul, u); 121 xs_html_text("@"),
122 xs_html_text(host),
123 xs_html_text(" ("),
124 xs_html_text(xs_dict_get(user.config, "name")),
125 xs_html_text(")"))));
119 126
120 user_free(&user); 127 user_free(&user);
121 } 128 }
122 } 129 }
123 130
124 ul = xs_str_cat(ul, "</ul>\n"); 131 xs *s1 = xs_html_render(ul);
125 132 s = xs_replace_i(s, "%userlist%", s1);
126 s = xs_replace_i(s, "%userlist%", ul);
127 } 133 }
128 } 134 }
129 135