summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--activitypub.c14
-rw-r--r--data.c1
2 files changed, 15 insertions, 0 deletions
diff --git a/activitypub.c b/activitypub.c
index 9a23e14..d75bbdd 100644
--- a/activitypub.c
+++ b/activitypub.c
@@ -1941,6 +1941,8 @@ int process_input_message(snac *snac, xs_dict *msg, xs_dict *req)
1941 } 1941 }
1942 else 1942 else
1943 if (strcmp(type, "Undo") == 0) { /** **/ 1943 if (strcmp(type, "Undo") == 0) { /** **/
1944 char *id = xs_dict_get(object, "object");
1945
1944 if (xs_type(object) != XSTYPE_DICT) 1946 if (xs_type(object) != XSTYPE_DICT)
1945 utype = "Follow"; 1947 utype = "Follow";
1946 1948
@@ -1953,6 +1955,18 @@ int process_input_message(snac *snac, xs_dict *msg, xs_dict *req)
1953 snac_log(snac, xs_fmt("error deleting follower %s", actor)); 1955 snac_log(snac, xs_fmt("error deleting follower %s", actor));
1954 } 1956 }
1955 else 1957 else
1958 if (strcmp(utype, "Like") == 0) { /** **/
1959 int status = object_unadmire(id, actor, 1);
1960
1961 snac_log(snac, xs_fmt("Unlike for %s %d", id, status));
1962 }
1963 else
1964 if (strcmp(utype, "Announce") == 0) { /** **/
1965 int status = object_unadmire(id, actor, 0);
1966
1967 snac_log(snac, xs_fmt("Unboost for %s %d", id, status));
1968 }
1969 else
1956 snac_debug(snac, 1, xs_fmt("ignored 'Undo' for object type '%s'", utype)); 1970 snac_debug(snac, 1, xs_fmt("ignored 'Undo' for object type '%s'", utype));
1957 } 1971 }
1958 else 1972 else
diff --git a/data.c b/data.c
index 7dd7d19..5cf62e7 100644
--- a/data.c
+++ b/data.c
@@ -916,6 +916,7 @@ int object_unadmire(const char *id, const char *actor, int like)
916 fn = xs_replace_i(fn, ".json", like ? "_l.idx" : "_a.idx"); 916 fn = xs_replace_i(fn, ".json", like ? "_l.idx" : "_a.idx");
917 917
918 status = index_del(fn, actor); 918 status = index_del(fn, actor);
919 index_gc(fn);
919 920
920 srv_debug(0, 921 srv_debug(0,
921 xs_fmt("object_unadmire (%s) %s %s %d", like ? "Like" : "Announce", actor, fn, status)); 922 xs_fmt("object_unadmire (%s) %s %s %d", like ? "Like" : "Announce", actor, fn, status));