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(
+ "\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(
+ "\n",
+ L("Boost")
+ );
+
+ s = xs_str_cat(s, s1);
+ }
+
+ if (following_check(snac, actor)) {
+ xs *s1 = xs_fmt(
+ "\n",
+ L("Unfollow")
+ );
+
+ s = xs_str_cat(s, s1);
+ }
+ else {
+ xs *s1 = xs_fmt(
+ "\n"
+ "\n",
+ L("Follow"),
+ L("MUTE")
+ );
+
+ s = xs_str_cat(s, s1);
+ }
+ }
+
+ {
+ xs *s1 = xs_fmt(
+ "\n",
+ L("Delete")
+ );
+
+ s = xs_str_cat(s, s1);
}
s = xs_str_cat(s, "\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, "\n");
+
return xs_str_cat(os, s);
}