New function msg_repulsion.

This commit is contained in:
default 2024-04-10 18:27:17 +02:00
parent a6958d6161
commit 1a6bb79921
3 changed files with 42 additions and 0 deletions

View file

@ -1168,6 +1168,33 @@ xs_dict *msg_admiration(snac *snac, char *object, char *type)
} }
xs_dict *msg_repulsion(snac *user, char *id, char *type)
/* creates an Undo + admiration message */
{
xs *a_msg = NULL;
xs_dict *msg = NULL;
if (valid_status(object_get(id, &a_msg))) {
/* create a clone of the original admiration message */
xs *object = msg_admiration(user, id, type);
/* delete the published date */
object = xs_dict_del(object, "published");
/* create an undo message for this object */
msg = msg_undo(user, object);
/* copy the 'to' field */
msg = xs_dict_set(msg, "to", xs_dict_get(object, "to"));
/* now we despise this */
object_unadmire(id, user->actor, *type == 'L' ? 1 : 0);
}
return msg;
}
xs_dict *msg_actor(snac *snac) xs_dict *msg_actor(snac *snac)
/* create a Person message for this actor */ /* create a Person message for this actor */
{ {

14
main.c
View file

@ -295,6 +295,20 @@ int main(int argc, char *argv[])
return 0; return 0;
} }
if (strcmp(cmd, "unboost") == 0) { /** **/
xs *msg = msg_repulsion(&snac, url, "Announce");
if (msg != NULL) {
enqueue_message(&snac, msg);
if (dbglevel) {
xs_json_dump(msg, 4, stdout);
}
}
return 0;
}
if (strcmp(cmd, "follow") == 0) { /** **/ if (strcmp(cmd, "follow") == 0) { /** **/
xs *msg = msg_follow(&snac, url); xs *msg = msg_follow(&snac, url);

1
snac.h
View file

@ -264,6 +264,7 @@ char *get_atto(const xs_dict *msg);
xs_list *get_attachments(const xs_dict *msg); xs_list *get_attachments(const xs_dict *msg);
xs_dict *msg_admiration(snac *snac, char *object, char *type); xs_dict *msg_admiration(snac *snac, char *object, char *type);
xs_dict *msg_repulsion(snac *user, char *id, char *type);
xs_dict *msg_create(snac *snac, const xs_dict *object); xs_dict *msg_create(snac *snac, const xs_dict *object);
xs_dict *msg_follow(snac *snac, const char *actor); xs_dict *msg_follow(snac *snac, const char *actor);