Slon/Modules/ActivityPub: Send smol Accept request to ack Create, instead of sending the entire message contents
This commit is contained in:
parent
2fa9fbd350
commit
3312c86836
1 changed files with 16 additions and 4 deletions
|
@ -806,6 +806,8 @@ U0 @slon_activitypub_users_inbox(SlonHttpSession* session, U8* user)
|
||||||
|
|
||||||
JsonObject* status = NULL;
|
JsonObject* status = NULL;
|
||||||
|
|
||||||
|
JsonObject* request_object = NULL;
|
||||||
|
|
||||||
if (!StrICmp("follow", request_json->@("type"))) {
|
if (!StrICmp("follow", request_json->@("type"))) {
|
||||||
if (!db->o("followers")->@(user)) {
|
if (!db->o("followers")->@(user)) {
|
||||||
db->o("followers")->set(user, Json.CreateArray(), JSON_ARRAY);
|
db->o("followers")->set(user, Json.CreateArray(), JSON_ARRAY);
|
||||||
|
@ -821,6 +823,7 @@ U0 @slon_activitypub_users_inbox(SlonHttpSession* session, U8* user)
|
||||||
account->set("followers_count", account->@("followers_count") + 1);
|
account->set("followers_count", account->@("followers_count") + 1);
|
||||||
@slon_db_save_to_disk;
|
@slon_db_save_to_disk;
|
||||||
}
|
}
|
||||||
|
request_object = Json.Clone(request_json);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!StrICmp("create", request_json->@("type"))) {
|
if (!StrICmp("create", request_json->@("type"))) {
|
||||||
|
@ -891,6 +894,12 @@ U0 @slon_activitypub_users_inbox(SlonHttpSession* session, U8* user)
|
||||||
|
|
||||||
@slon_db_save_timelines_to_disk;
|
@slon_db_save_timelines_to_disk;
|
||||||
@slon_free(session, id);
|
@slon_free(session, id);
|
||||||
|
request_object = Json.CreateObject();
|
||||||
|
request_object->set("@context", "https://www.w3.org/ns/activitystreams", JSON_STRING);
|
||||||
|
request_object->set("id", request_json->@("id"), JSON_STRING);
|
||||||
|
request_object->set("type", request_json->@("type"), JSON_STRING);
|
||||||
|
request_object->set("actor", request_json->@("actor"), JSON_STRING);
|
||||||
|
request_object->set("object", db->o("actors")->o(user)->@("id"), JSON_STRING);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!StrICmp("like", request_json->@("type"))) {
|
if (!StrICmp("like", request_json->@("type"))) {
|
||||||
|
@ -904,12 +913,15 @@ U0 @slon_activitypub_users_inbox(SlonHttpSession* session, U8* user)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@slon_db_save_statuses_to_disk;
|
@slon_db_save_statuses_to_disk;
|
||||||
|
request_object = Json.Clone(request_json);
|
||||||
}
|
}
|
||||||
|
|
||||||
JsonObject* o = Json.CreateObject();
|
if (request_object) {
|
||||||
o->set("user", user, JSON_STRING);
|
JsonObject* o = Json.CreateObject();
|
||||||
o->set("request", Json.Clone(request_json), JSON_OBJECT);
|
o->set("user", user, JSON_STRING);
|
||||||
Spawn(&@slon_activitypub_async_accept_request, o, "SlonAsyncAcceptTask");
|
o->set("request", request_object, JSON_OBJECT);
|
||||||
|
Spawn(&@slon_activitypub_async_accept_request, o, "SlonAsyncAcceptTask");
|
||||||
|
}
|
||||||
|
|
||||||
@slon_http_set_status_code(session, 200);
|
@slon_http_set_status_code(session, 200);
|
||||||
return;
|
return;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue