summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authordefault <nobody@localhost>2022-11-20 05:24:11 +0100
committerdefault <nobody@localhost>2022-11-20 05:24:11 +0100
commit86aa0ff4b6b0c7fe054e027be6492f07f9a3d7f2 (patch)
treedfd7980cb6b90c0e028be6798133528b6663ee05
parent50d73a6e94c528693155466d4b5c374939fe20f5 (diff)
More RSS tweaks.
-rw-r--r--html.c17
1 files changed, 15 insertions, 2 deletions
diff --git a/html.c b/html.c
index dda7237..533bb44 100644
--- a/html.c
+++ b/html.c
@@ -1129,19 +1129,32 @@ int html_get_handler(d_char *req, char *q_path, char **body, int *b_size, char *
continue;
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 */
content = xs_replace_i(content, "<", "&lt;");
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(
"<item>\n"
"<title>%s</title>\n"
"<link>%s</link>\n"
"<description>%s</description>\n"
"</item>\n",
- xs_is_null(title) ? "..." : title, id, content
+ title, id, content
);
rss = xs_str_cat(rss, s);