More RSS tweaks.

This commit is contained in:
default 2022-11-20 05:24:11 +01:00
parent 50d73a6e94
commit 86aa0ff4b6

17
html.c
View file

@ -1129,19 +1129,32 @@ int html_get_handler(d_char *req, char *q_path, char **body, int *b_size, char *
continue; continue;
xs *content = sanitize(xs_dict_get(msg, "content")); xs *content = sanitize(xs_dict_get(msg, "content"));
char *title = xs_dict_get(msg, "published"); xs *title = xs_dup(content);
int i = -1;
/* escape tags */ /* escape tags */
content = xs_replace_i(content, "<", "&lt;"); content = xs_replace_i(content, "<", "&lt;");
content = xs_replace_i(content, ">", "&gt;"); content = xs_replace_i(content, ">", "&gt;");
if (strlen(title) > 40)
title[i = 40] = '\0';
if ((v = strchr(title, '<')))
title[i = (v - title)] = '\0';
if ((v = strchr(title, '&')))
title[i = (v - title)] = '\0';
if (i != -1)
title = xs_str_cat(xs_strip(title), "...");
xs *s = xs_fmt( xs *s = xs_fmt(
"<item>\n" "<item>\n"
"<title>%s</title>\n" "<title>%s</title>\n"
"<link>%s</link>\n" "<link>%s</link>\n"
"<description>%s</description>\n" "<description>%s</description>\n"
"</item>\n", "</item>\n",
xs_is_null(title) ? "..." : title, id, content title, id, content
); );
rss = xs_str_cat(rss, s); rss = xs_str_cat(rss, s);