Everywhere: Store statuses by account id, generate timelines as array of object:account_id,status_id

This commit is contained in:
Alec Murphy 2025-03-05 13:43:35 -05:00
parent 33a92718c7
commit 5333b64917
4 changed files with 196 additions and 111 deletions

View file

@ -1,27 +1,13 @@
U0 @slon_api_v1_timelines_home(SlonHttpSession* session, U8* account_id)
{
// Return the Account's Home timeline
JsonArray* status_array = db->o("timelines")->o("home")->a(account_id);
if (!status_array) {
session->send(SLON_EMPTY_JSON_ARRAY);
return;
}
@slon_api_v1_statuses_query(session, status_array);
@slon_api_v1_statuses_query(session, @slon_api_status_array_from_timeline(db->o("timelines")->o("home")->a(account_id)));
}
U0 @slon_api_v1_timelines_public(SlonHttpSession* session)
{
SLON_SCRATCH_BUFFER_AND_REQUEST_JSON
no_warn scratch_buffer;
// Return the Public timeline
JsonArray* status_array = db->o("timelines")->a("public");
if (!status_array) {
session->send(SLON_EMPTY_JSON_ARRAY);
return;
}
request_json->unset("exclude_replies");
@slon_api_v1_statuses_query(session, status_array);
@slon_api_v1_statuses_query(session, @slon_api_status_array_from_timeline(db->o("timelines")->a("public")));
}
U0 @slon_api_v1_timelines_get(SlonHttpSession* session)