diff --git a/html.c b/html.c
index ec5effa..3e77b84 100644
--- a/html.c
+++ b/html.c
@@ -1153,16 +1153,31 @@ xs_str *html_entry(snac *snac, xs_str *os, const xs_dict *msg, int local,
s = xs_str_cat(s, "\n");
/* add the attachments */
- xs_list *attach = xs_dict_get(msg, "attachment");
- xs_dict *image = xs_dict_get(msg, "image");
+ v = xs_dict_get(msg, "attachment");
- if (!xs_is_null(attach) || !xs_is_null(image)) { /** **/
- char *v;
+ if (!xs_is_null(v)) { /** attachments **/
+ xs *attach = NULL;
+
+ /* ensure it's a list */
+ if (xs_type(v) == XSTYPE_DICT) {
+ attach = xs_list_new();
+ attach = xs_list_append(attach, v);
+ }
+ else
+ attach = xs_dup(v);
+
+ /* does the message have an image? */
+ if (xs_type(v = xs_dict_get(msg, "image")) == XSTYPE_DICT) {
+ /* add it to the attachment list */
+ attach = xs_list_append(attach, v);
+ }
/* make custom css for attachments easier */
s = xs_str_cat(s, "
\n");
- while (xs_list_iter(&attach, &v)) {
+ xs_list *p = attach;
+
+ while (xs_list_iter(&p, &v)) {
const char *t = xs_dict_get(v, "mediaType");
if (xs_is_null(t))
@@ -1171,7 +1186,7 @@ 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/")) {
+ if (xs_startswith(t, "image/") || strcmp(t, "Image") == 0) {
char *url = xs_dict_get(v, "url");
char *name = xs_dict_get(v, "name");
@@ -1248,24 +1263,6 @@ xs_str *html_entry(snac *snac, xs_str *os, const xs_dict *msg, int local,
}
}
- /* if the message has an image, add it */
- if (!xs_is_null(image)) {
- if (!xs_is_null(image = xs_dict_get(image, "url"))) {
- xs *es1;
- if (!xs_is_null(v = xs_dict_get(msg, "name")))
- es1 = encode_html(v);
- else
- es1 = xs_str_new(NULL);
-
- xs *s1 = xs_fmt(
- ""
- "\n",
- image, image, es1, es1);
-
- s = xs_str_cat(s, s1);
- }
- }
-
s = xs_str_cat(s, "
\n");
}