following_list() creates links to the actors if they don't exist.

This commit is contained in:
default 2023-06-15 04:19:09 +02:00
parent e97092cf0c
commit 297b82c9c6

16
data.c
View file

@ -1256,13 +1256,23 @@ xs_list *following_list(snac *snac)
xs *o = xs_json_loads(j); xs *o = xs_json_loads(j);
if (o != NULL) { if (o != NULL) {
char *type = xs_dict_get(o, "type"); const char *type = xs_dict_get(o, "type");
if (!xs_is_null(type) && strcmp(type, "Accept") == 0) { if (!xs_is_null(type) && strcmp(type, "Accept") == 0) {
char *actor = xs_dict_get(o, "actor"); const char *actor = xs_dict_get(o, "actor");
if (!xs_is_null(actor)) if (!xs_is_null(actor)) {
list = xs_list_append(list, actor); list = xs_list_append(list, actor);
/* check if there is a link to the actor object */
xs *v2 = xs_replace(v, ".json", "");
if (mtime(v2) == 0.0) {
/* no; add a link to it */
xs *actor_fn = _object_fn(actor);
link(actor_fn, v2);
}
}
} }
} }
} }