diff options
Diffstat (limited to 'html.c')
-rw-r--r-- | html.c | 91 |
1 files changed, 29 insertions, 62 deletions
@@ -1173,7 +1173,7 @@ xs_str *html_entry(snac *snac, xs_str *os, const xs_dict *msg, int local, } /* make custom css for attachments easier */ - s = xs_str_cat(s, "<p class=\"snac-content-attachments\">\n"); + s = xs_str_cat(s, "<div class=\"snac-content-attachments\">\n"); xs_list *p = attach; @@ -1186,84 +1186,51 @@ xs_str *html_entry(snac *snac, xs_str *os, const xs_dict *msg, int local, if (xs_is_null(t)) continue; - if (xs_startswith(t, "image/") || strcmp(t, "Image") == 0) { - char *url = xs_dict_get(v, "url"); - char *name = xs_dict_get(v, "name"); + const char *url = xs_dict_get(v, "url"); + if (xs_is_null(url)) + url = xs_dict_get(v, "href"); + if (xs_is_null(url)) + continue; - if (url != NULL) { - if (xs_is_null(name)) - name = ""; + const char *name = xs_dict_get(v, "name"); + if (xs_is_null(name)) + name = L("No description"); - xs *es1 = encode_html(name); - xs *s1 = xs_fmt( - "<a href=\"%s\" target=\"_blank\">" - "<img src=\"%s\" alt=\"%s\" title=\"%s\" loading=\"lazy\"/></a>\n", - url, url, es1, es1); + xs *es1 = encode_html(name); + xs *s1 = NULL; - s = xs_str_cat(s, s1); - } + if (xs_startswith(t, "image/") || strcmp(t, "Image") == 0) { + s1 = xs_fmt( + "<a href=\"%s\" target=\"_blank\">" + "<img src=\"%s\" alt=\"%s\" title=\"%s\" loading=\"lazy\"/></a>\n", + url, url, es1, es1); } else if (xs_startswith(t, "video/")) { - char *url = xs_dict_get(v, "url"); - char *name = xs_dict_get(v, "name"); - - if (url != NULL) { - if (xs_is_null(name)) - name = "No description"; - - xs *es1 = encode_html(name); - xs *s1 = xs_fmt("<video style=\"width: 100%\" class=\"snac-embedded-video\" " - "controls src=\"%s\">Video: " - "<a href=\"%s\">%s</a></video>\n", url, url, es1); - - s = xs_str_cat(s, s1); - } + s1 = xs_fmt("<video style=\"width: 100%\" class=\"snac-embedded-video\" " + "controls src=\"%s\">Video: " + "<a href=\"%s\">%s</a></video>\n", url, url, es1); } else if (xs_startswith(t, "audio/")) { - char *url = xs_dict_get(v, "url"); - char *name = xs_dict_get(v, "name"); - - if (url != NULL) { - if (xs_is_null(name)) - name = "No description"; - - xs *es1 = encode_html(name); - xs *s1 = xs_fmt("<audio style=\"width: 100%\" class=\"snac-embedded-audio\" " - "controls src=\"%s\">Audio: " - "<a href=\"%s\">%s</a></audio>\n", url, url, es1); - - s = xs_str_cat(s, s1); - } + s1 = xs_fmt("<audio style=\"width: 100%\" class=\"snac-embedded-audio\" " + "controls src=\"%s\">Audio: " + "<a href=\"%s\">%s</a></audio>\n", url, url, es1); } else if (strcmp(t, "Link") == 0) { - const char *url = xs_dict_get(v, "href"); - - if (!xs_is_null(url)) { - xs *es1 = encode_html(url); - xs *s1 = xs_fmt("<p><a href=\"%s\">%s</a></p>\n", url, es1); - s = xs_str_cat(s, s1); - } + xs *es2 = encode_html(url); + s1 = xs_fmt("<p><a href=\"%s\">%s</a></p>\n", url, es2); } else { - char *url = xs_dict_get(v, "url"); - char *name = xs_dict_get(v, "name"); - - if (url != NULL) { - if (xs_is_null(name)) - name = "No description"; - - xs *es1 = encode_html(name); - xs *s1 = xs_fmt("<a href=\"%s\">Attachment: %s</a>", url, es1); - - s = xs_str_cat(s, s1); - } + s1 = xs_fmt("<p><a href=\"%s\">Attachment: %s</a></p>\n", url, es1); } + + if (!xs_is_null(s1)) + s = xs_str_cat(s, s1); } - s = xs_str_cat(s, "</p>\n"); + s = xs_str_cat(s, "</div>\n"); } /* has this message an audience (i.e., comes from a channel or community)? */ |