diff options
| -rw-r--r-- | activitypub.c | 14 | ||||
| -rw-r--r-- | data.c | 1 |
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 |
| @@ -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)); |