summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar default2022-09-28 17:12:39 +0200
committerGravatar default2022-09-28 17:12:39 +0200
commit5647e675fd59d06b8a9a6016076b45978bdd4d4b (patch)
tree2111d4adefb6e3e60882d63dab7a659a32482c9a
parentBetter coping with timeouts. (diff)
downloadpenes-snac2-5647e675fd59d06b8a9a6016076b45978bdd4d4b.tar.gz
penes-snac2-5647e675fd59d06b8a9a6016076b45978bdd4d4b.tar.xz
penes-snac2-5647e675fd59d06b8a9a6016076b45978bdd4d4b.zip
More HTML work.
-rw-r--r--html.c67
1 files changed, 47 insertions, 20 deletions
diff --git a/html.c b/html.c
index c7c1b85..0ff00ea 100644
--- a/html.c
+++ b/html.c
@@ -175,7 +175,7 @@ d_char *html_msg_icon(snac *snac, d_char *s, char *msg)
175 avatar = xs_fmt("data:image/png;base64, %s", susie); 175 avatar = xs_fmt("data:image/png;base64, %s", susie);
176 176
177 { 177 {
178 xs *s1 = xs_fmt("<p><img class=\"snac-avatar\" src=\"%s\"/>\n", avatar); 178 xs *s1 = xs_fmt("<p><img class=\"snac-avatar\" src=\"%s\" alt=\"\"/>\n", avatar);
179 s = xs_str_cat(s, s1); 179 s = xs_str_cat(s, s1);
180 } 180 }
181 181
@@ -200,8 +200,6 @@ d_char *html_msg_icon(snac *snac, d_char *s, char *msg)
200 xs *s1 = xs_fmt("<br>\n<time class=\"dt-published snac-pubdate\">%s</time>\n", v); 200 xs *s1 = xs_fmt("<br>\n<time class=\"dt-published snac-pubdate\">%s</time>\n", v);
201 s = xs_str_cat(s, s1); 201 s = xs_str_cat(s, s1);
202 } 202 }
203
204 s = xs_str_cat(s, "</div>\n");
205 } 203 }
206 204
207 return s; 205 return s;
@@ -425,6 +423,8 @@ d_char *html_entry(snac *snac, d_char *s, char *msg, xs_set *seen, int level)
425 s = html_msg_icon(snac, s, msg); 423 s = html_msg_icon(snac, s, msg);
426 424
427 /* add the content */ 425 /* add the content */
426 s = xs_str_cat(s, "<div class=\"e-content snac-content\">\n");
427
428 { 428 {
429 xs *c = xs_dup(xs_dict_get(msg, "content")); 429 xs *c = xs_dup(xs_dict_get(msg, "content"));
430 430
@@ -441,32 +441,59 @@ d_char *html_entry(snac *snac, d_char *s, char *msg, xs_set *seen, int level)
441 c = xs_fmt("<p>%s</p>", s1); 441 c = xs_fmt("<p>%s</p>", s1);
442 } 442 }
443 443
444 xs *s1 = xs_fmt("<div class=\"e-content snac-content\">\n%s\n", c); 444 s = xs_str_cat(s, c);
445 s = xs_str_cat(s, s1); 445 }
446 446
447 /* now add the attachments */ 447 /* add the attachments */
448 char *attach; 448 char *attach;
449 449
450 if ((attach = xs_dict_get(msg, "attachment")) != NULL) { 450 if ((attach = xs_dict_get(msg, "attachment")) != NULL) {
451 char *v; 451 char *v;
452 while (xs_list_iter(&attach, &v)) { 452 while (xs_list_iter(&attach, &v)) {
453 char *t = xs_dict_get(v, "mediaType"); 453 char *t = xs_dict_get(v, "mediaType");
454 454
455 if (t && xs_startswith(t, "image/")) { 455 if (t && xs_startswith(t, "image/")) {
456 char *url = xs_dict_get(v, "url"); 456 char *url = xs_dict_get(v, "url");
457 char *name = xs_dict_get(v, "name"); 457 char *name = xs_dict_get(v, "name");
458 458
459 if (url != NULL) { 459 if (url != NULL) {
460 xs *s1 = xs_fmt("<p><img src=\"%s\" alt=\"%s\"/></p>\n", 460 xs *s1 = xs_fmt("<p><img src=\"%s\" alt=\"%s\"/></p>\n",
461 url, xs_is_null(name) ? "" : name); 461 url, xs_is_null(name) ? "" : name);
462 462
463 s = xs_str_cat(s, s1); 463 s = xs_str_cat(s, s1);
464 }
465 } 464 }
466 } 465 }
467 } 466 }
467 }
468
469 s = xs_str_cat(s, "</div> <!-- e-content -->\n");
470
471 char *children = xs_dict_get(meta, "children");
472
473 if (xs_list_len(children)) {
474 int left = xs_list_len(children);
475 char *id;
476
477 s = xs_str_cat(s, "<div class=\"snac-children\">\n");
478
479 if (left > 3)
480 s = xs_str_cat(s, "<details><summary>...</summary>\n");
481
482 while (xs_list_iter(&children, &id)) {
483 xs *chd = timeline_find(snac, id);
484
485 if (left == 0)
486 s = xs_str_cat(s, "</details>\n");
487
488 if (chd != NULL)
489 s = html_entry(snac, s, chd, seen, level + 1);
490 else
491 snac_debug(snac, 1, xs_fmt("cannot read from timeline child %s", id));
492
493 left--;
494 }
468 495
469 s = xs_str_cat(s, "</div> <!-- e-content -->\n"); 496 s = xs_str_cat(s, "</div> <!-- snac-children -->\n");
470 } 497 }
471 498
472 s = xs_str_cat(s, "</div> <!-- post or child -->\n"); 499 s = xs_str_cat(s, "</div> <!-- post or child -->\n");