Slon/Modules/ActivityPub: Associate replies with known statuses
This commit is contained in:
parent
2f879bc9ef
commit
b487e381e8
1 changed files with 23 additions and 0 deletions
|
@ -628,6 +628,22 @@ JsonObject* @slon_activitypub_get_account_for_remote_actor(SlonHttpSession* sess
|
||||||
return account;
|
return account;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
U8* @slon_activitypub_status_id_by_uri(U8* uri, JsonArray* statuses)
|
||||||
|
{
|
||||||
|
if (!uri || !statuses) {
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
I64 i;
|
||||||
|
JsonObject* status;
|
||||||
|
for (i = 0; i < statuses->length; i++) {
|
||||||
|
status = statuses->@(i);
|
||||||
|
if (status->@("uri") && !StrICmp(status->@("uri"), uri)) {
|
||||||
|
return status->@("id");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
U0 @slon_activitypub_users_inbox(SlonHttpSession* session, U8* user)
|
U0 @slon_activitypub_users_inbox(SlonHttpSession* session, U8* user)
|
||||||
{
|
{
|
||||||
SLON_SCRATCH_BUFFER_AND_REQUEST_JSON
|
SLON_SCRATCH_BUFFER_AND_REQUEST_JSON
|
||||||
|
@ -790,6 +806,13 @@ U0 @slon_activitypub_users_inbox(SlonHttpSession* session, U8* user)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (request_json->o("object")->@("inReplyTo") || request_json->o("object")->@("inReplyToAtomUri")) {
|
||||||
|
U8* reply_to_post_id = @slon_activitypub_status_id_by_uri(request_json->o("object")->@("inReplyTo"), db->o("timelines")->o("home")->a(account->@("id")));
|
||||||
|
if (reply_to_post_id) {
|
||||||
|
new_status->set("in_reply_to_id", reply_to_post_id, JSON_STRING);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
new_status->set("id", id, JSON_STRING);
|
new_status->set("id", id, JSON_STRING);
|
||||||
new_status->set("created_at", request_json->@("published"), JSON_STRING);
|
new_status->set("created_at", request_json->@("published"), JSON_STRING);
|
||||||
new_status->set("content", request_json->o("object")->@("content"), JSON_STRING);
|
new_status->set("content", request_json->o("object")->@("content"), JSON_STRING);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue