summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlex Schroeder <alex@gnu.org>2022-12-03 20:46:51 +0100
committerAlex Schroeder <alex@gnu.org>2022-12-04 10:05:53 +0100
commita3fa7dbaec4e3d61eb51224ca44d6c9fe644af3c (patch)
treee454043306472648337427772ab5dc3671fca30e
parente4c26715a138862b17bb23562be28e6ea4d949f9 (diff)
No sensitive content in the public timeline
Don't use h3 in the public timeline. Use the details tag, as before, but default to "open" if the config setting is set. Only do this in the private timeline (where local == 0, as set by html_get_handler).
-rw-r--r--html.c16
1 files changed, 6 insertions, 10 deletions
diff --git a/html.c b/html.c
index 5912422..fbb313b 100644
--- a/html.c
+++ b/html.c
@@ -618,17 +618,13 @@ d_char *html_entry(snac *snac, d_char *os, char *msg, int local, int level, int
if (!xs_is_null(v = xs_dict_get(msg, "sensitive")) && xs_type(v) == XSTYPE_TRUE) {
if (xs_is_null(v = xs_dict_get(msg, "summary")) || *v == '\0')
v = "...";
+ /* only show it when not in the public timeline and the config setting is "open" */
char *cw = xs_dict_get(snac->config, "cw");
- if (xs_is_null(cw))
+ if (xs_is_null(cw) || local)
cw = "";
- if (strcmp(cw, "checked") == 0) {
- xs *s1 = xs_fmt("<h3>%s</h3>", v);
- s = xs_str_cat(s, s1);
- } else {
- xs *s1 = xs_fmt("<details><summary>%s [%s]</summary>\n", v, L("SENSITIVE CONTENT"));
- s = xs_str_cat(s, s1);
- sensitive = 1;
- }
+ xs *s1 = xs_fmt("<details %s><summary>%s [%s]</summary>\n", cw, v, L("SENSITIVE CONTENT"));
+ s = xs_str_cat(s, s1);
+ sensitive = 1;
}
#if 0
@@ -1392,7 +1388,7 @@ int html_post_handler(d_char *req, char *q_path, d_char *payload, int p_size,
snac.config = xs_dict_set(snac.config, "bio", v);
if ((v = xs_dict_get(p_vars, "cw")) != NULL &&
strcmp(v, "on") == 0) {
- snac.config = xs_dict_set(snac.config, "cw", "checked");
+ snac.config = xs_dict_set(snac.config, "cw", "open");
} else { /* if the checkbox is not set, the parameter is missing */
snac.config = xs_dict_set(snac.config, "cw", "");
}