Commit graph

155 commits

Author SHA1 Message Date
5010de73a0 Slon/Api/V1/Accounts: Fix nested for loops in @slon_api_v1_accounts_get 2025-03-10 09:12:05 -04:00
ba296cceb8 Slon/Api/V1/Accounts: Create relationship object in session's mem_task
This fixes a crash when the Mona iOS client makes a GET request to the
/api/v1/accounts/relationships endpoint.
2025-03-10 08:21:40 -04:00
08579df0b8 Slon/Modules/Http: Add mem_task to SlonHttpSession
We should be using the CHeapCtrl from the Spawned @slon_http_task to
allocate memory for each individual session, which will automatically
be freed when the CTask dies, so let's give ourselves the ability to
do that.
2025-03-10 08:18:13 -04:00
e982c9584a System/FFI/LibC: Round-robin mem_task selection for malloc
This fixes an issue where multiple HTTP requests would arrive
simultaneously, and the subsequent calls to @rsa_import would
end up clobbering the shared mem_task's CHeapCtrl, leading to #GP.

Eventually, we may want to simplify this to only init the CHeapCtrl,
rather than creating the entire CTask, but for now it seems ok.
2025-03-10 07:51:19 -04:00
546cbaf18d Slon/Modules/Api: Add NULL check to SLON_AUTH_ACCOUNT_ID macro 2025-03-09 20:34:45 -04:00
d5a09373e4 Everywhere: Update JSON API 2025-03-09 19:39:44 -04:00
6a0ecc2bd2 System/Utilities/Time: Update JSON API, remove tz stuff for now 2025-03-09 13:32:20 -04:00
bacab705b3 System/Libraries/Http: Update JSON API 2025-03-09 13:26:03 -04:00
90af0edcbb System/Libraries/Json: Fundamental (breaking) changes to API
Going forward, the following methods will require a mem_task to be
provided: Clone, CreateArray, CreateObject, Parse, Stringify.

For JsonArray, append/insert/prepend will take arguments in the form
((index,) value, type). A JsonItem will automatically be created which
encapsulates this value and type. If type is not specified, the
following will be done to determine the type:

- Cast value to JsonElement* and check if the signature matches. If it
  does, assign type as value(JsonElement*)->type; or

- If value > 0x1000, assign type as JSON_STRING; or

- Otherwise, assign type as JSON_BOOLEAN.
2025-03-09 13:16:33 -04:00
b4e6abc79f System/Utilities/Time: Update for DST 2025-03-08 16:28:12 -05:00
b0c1016955 Slon/Modules/ActivityPub: Pass actor as argument to @slon_activitypub_get_account_for_remote_actor 2025-03-06 15:09:57 -05:00
74455c59ab Slon/Modules/Db: Add @slon_db_save_status_to_disk() to save an individual account's statuses 2025-03-06 15:03:05 -05:00
aded79c192 Slon/Modules/Db: Save/load accounts to/from individual JSON files 2025-03-06 10:54:25 -05:00
64f31de070 Everywhere: Use slon_mem_task for memory allocation 2025-03-06 09:54:26 -05:00
5333b64917 Everywhere: Store statuses by account id, generate timelines as array of object:account_id,status_id 2025-03-05 13:43:35 -05:00
33a92718c7 Slon/Api/V1/Accounts: Handle array of ids for /api/v1/accounts/relationships 2025-03-05 13:04:22 -05:00
62b6d75851 Slon/Modules/Api: Use @slon_api_find_status_by_id 2025-03-05 08:09:17 -05:00
b8fba64ab0 Slon/Api/V1/Accounts: Allow updating avatar/header images via PATCH /api/v1/accounts/update_credentials 2025-03-04 20:46:43 -05:00
3100707e78 Slon/Api/V2/Media: Remove unnecessary no_warn 2025-03-04 20:14:26 -05:00
f1d78783a3 Slon/Endpoints/Get/Web: Remove some test data 2025-03-04 15:12:49 -05:00
9ed7e1c1e3 Slon/Http/Server: Use @slon_http_json_object_add_nested_value() when
parsing url-encoded strings to JSON

Fixes #3
2025-03-04 14:45:12 -05:00
a7649a00c8 Everywhere: Use Catbox API asynchronously
Fixes #2
2025-03-04 13:26:35 -05:00
04dce33aca Slon/Modules/Api: Move Catbox API routines here 2025-03-03 21:12:33 -05:00
e1c6ca1b2b Slon/Http/Server: Reimplement multipart/form-data to JSON parser 2025-03-03 21:00:55 -05:00
68e5cf5eb9 System/Libraries/String: Use mode instead of always trimming both ends in String.Trim() 2025-03-03 13:53:47 -05:00
691504f48f System/Libraries/String: Add String.Trim() 2025-03-03 10:35:29 -05:00
8eddf1fdc7 Slon/Static/html,js: Let IMG tags know width,height from status' media attachments 2025-03-02 19:58:34 -05:00
alec
b4a9f3ec1a
Update README.md 2025-03-02 19:43:54 -05:00
5258ab19a8 Slon/Api/V1/Statuses: Allow retrieval of individual status from public timeline 2025-03-02 18:07:09 -05:00
715d119882 Slon/Api/V1/Statuses: Implement Context descendants
Fixes #1
2025-03-02 17:34:59 -05:00
27fa0f8aad Slon/Api/V2/Media: Add support for Catbox API 2025-03-02 15:08:39 -05:00
6ff3a74914 Slon/Modules/Db,Slon/Http/AdminServer: Add a settings object to the database for misc parameters 2025-03-02 09:55:22 -05:00
6f11f7830d Slon/Api/V1/Statuses: Handle 'sensitive' parameter if POSTed as string rather than boolean 2025-03-01 21:27:09 -05:00
c0a28a6f17 Slon/Modules/Http: Increase session buffer size to 10MB 2025-03-01 21:11:01 -05:00
bcb46d47f1 Slon/Http/Server: Add @slon_http_json_object_from_multipart_form_data() 2025-03-01 21:08:39 -05:00
140284233d Slon/Static/html: Display images in user statuses 2025-03-01 20:18:35 -05:00
b104551bbd Slon/Api/{V1,V2}/Media: Implement PUT /api/v1/media, POST /api/v2/media 2025-03-01 19:46:13 -05:00
95aecb9fb1 Slon/Api/V1/Markers: Implement /api/v1/markers 2025-02-28 18:39:20 -05:00
e223273300 Slon/Api/V1/Statuses: Refactor /api/v1/statues/:id/context 2025-02-28 18:35:23 -05:00
da6998c637 Slon/Http/Server: Support arrays and objects in urlencoded strings 2025-02-28 16:23:30 -05:00
1ecc5f4995 Slon/Api/V1/Statuses: Don't clobber status with each lookup 2025-02-28 16:21:21 -05:00
88f4c39968 Api/V1/Statuses: Include parameter in @slon_api_v1_statuses_query 2025-02-28 12:35:38 -05:00
afee70ad38 Slon/Api/V1/Statuses: Implement GET /api/v1/statues/:id/context 2025-02-28 12:22:32 -05:00
9a5a49ae80 Slon/Http/Server: Add Slon/Endpoints/Get/Statuses 2025-02-28 11:29:06 -05:00
90e553abc3 Slon/Api/V1/Statuses: Implement GET /api/v1/statuses/:id 2025-02-28 11:26:33 -05:00
b487e381e8 Slon/Modules/ActivityPub: Associate replies with known statuses 2025-02-28 10:21:02 -05:00
2f879bc9ef Slon/Static/html/admin: Show total of known accounts in Admin interface 2025-02-28 08:51:17 -05:00
81d65056a9 System/Libraries/Json: Implement @json_stringify_string to eliminate StrLen() bottleneck 2025-02-27 11:30:08 -05:00
4b7e5b2836 Slon/Http/AdminServer: Implement Manage>Instance 2025-02-24 15:00:24 -05:00
c44f5b482e Slon/Modules/ActivityPub: Use atomUri as idempotency key for Create status requests 2025-02-23 09:25:03 -05:00