summaryrefslogtreecommitdiff
path: root/html.c
diff options
context:
space:
mode:
Diffstat (limited to 'html.c')
-rw-r--r--html.c60
1 files changed, 60 insertions, 0 deletions
diff --git a/html.c b/html.c
index 599c6d8..bdf0bbe 100644
--- a/html.c
+++ b/html.c
@@ -375,6 +375,7 @@ d_char *html_entry_controls(snac *snac, d_char *os, char *msg)
{
char *id = xs_dict_get(msg, "id");
char *actor = xs_dict_get(msg, "attributedTo");
+ char *meta = xs_dict_get(msg, "_snac");
xs *s = xs_str_new(NULL);
xs *md5 = xs_md5_hex(id, strlen(id));
@@ -404,6 +405,63 @@ d_char *html_entry_controls(snac *snac, d_char *os, char *msg)
if (strcmp(actor, snac->actor) != 0) {
/* controls for other actors than this one */
+ char *l;
+
+ l = xs_dict_get(meta, "liked_by");
+ if (xs_list_in(l, snac->actor) == -1) {
+ /* not already liked; add button */
+ xs *s1 = xs_fmt(
+ "<input type=\"submit\" name=\"action\" "
+ "class=\"snac-btn-like\" value=\"%s\">\n",
+ L("Like")
+ );
+
+ s = xs_str_cat(s, s1);
+ }
+
+ l = xs_dict_get(meta, "announced_by");
+ if (xs_list_in(l, snac->actor) == -1) {
+ /* not already boosted; add button */
+ xs *s1 = xs_fmt(
+ "<input type=\"submit\" name=\"action\" "
+ "class=\"snac-btn-boost\" value=\"%s\">\n",
+ L("Boost")
+ );
+
+ s = xs_str_cat(s, s1);
+ }
+
+ if (following_check(snac, actor)) {
+ xs *s1 = xs_fmt(
+ "<input type=\"submit\" name=\"action\" "
+ "class=\"snac-btn-unfollow\" value=\"%s\">\n",
+ L("Unfollow")
+ );
+
+ s = xs_str_cat(s, s1);
+ }
+ else {
+ xs *s1 = xs_fmt(
+ "<input type=\"submit\" name=\"action\" "
+ "class=\"snac-btn-follow\" value=\"%s\">\n"
+ "<input type=\"submit\" name=\"action\" "
+ "class=\"snac-btn-mute\" value=\"%s\">\n",
+ L("Follow"),
+ L("MUTE")
+ );
+
+ s = xs_str_cat(s, s1);
+ }
+ }
+
+ {
+ xs *s1 = xs_fmt(
+ "<input type=\"submit\" name=\"action\" "
+ "class=\"snac-btn-delete\" value=\"%s\">\n",
+ L("Delete")
+ );
+
+ s = xs_str_cat(s, s1);
}
s = xs_str_cat(s, "</form>\n");
@@ -430,6 +488,8 @@ d_char *html_entry_controls(snac *snac, d_char *os, char *msg)
s = xs_str_cat(s, s1);
}
+ s = xs_str_cat(s, "</div>\n");
+
return xs_str_cat(os, s);
}