Commit graph

60 commits

Author SHA1 Message Date
400d9c9c01 Slon/Api/V1/Bookmarks: Implement Bookmarks
Fixes #10
2025-03-14 18:24:10 -04:00
5a9bf4f32b Slon/Api/V1/CustomEmojis: Implement Custom Emojis
Fixes #6
2025-03-13 15:50:48 -04:00
401035a0d1 Slon/Api/V1/Favourites: Implement Favourites
Fixes #7
2025-03-12 20:33:39 -04:00
475e648feb Slon/Api/V1/Announcements: Implement Announcements
Fixes #9
2025-03-12 16:19:00 -04:00
6e9f86b4ae Slon/Modules/Db: Show progress when loading profiles and statues 2025-03-12 13:41:05 -04:00
fd8d6ca2b7 Slon/Modules/ActivityPub: Fix offset for HTTP signatures (for now) 2025-03-12 09:05:42 -04:00
3faed0e966 Slon/Modules/OAuth: Return client state for /oauth/verify_access
Most clients don't care about this, but the (deprecated) Tooot iOS app
does, so now we support it.
2025-03-12 07:47:09 -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
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
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
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
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
5258ab19a8 Slon/Api/V1/Statuses: Allow retrieval of individual status from public timeline 2025-03-02 18:07:09 -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
c0a28a6f17 Slon/Modules/Http: Increase session buffer size to 10MB 2025-03-01 21:11:01 -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
b487e381e8 Slon/Modules/ActivityPub: Associate replies with known statuses 2025-02-28 10:21:02 -05:00
c44f5b482e Slon/Modules/ActivityPub: Use atomUri as idempotency key for Create status requests 2025-02-23 09:25:03 -05:00
6ee0f037f6 Slon/Modules/ActivityPub: Always send the Accept request to signatory, rather than the actor specified in the object 2025-02-23 09:23:09 -05:00
430e92cbe0 Slon/Modules/ActivityPub: Sign GET request in @slon_activitypub_http_signature_is_valid 2025-02-23 08:20:56 -05:00
89e70359c4 Slon/Modules/ActivityPub: Remove invalid newline when building headers for signing GET request 2025-02-23 07:26:08 -05:00
8838d0446d Everywhere: Deduplicate local account creation for remote actors in @slon_accounts_create_local_for_remote_actor 2025-02-22 21:43:19 -05:00
1a5aa1e22c Slon/Modules/ActivityPub: Fix typo passing http_headers to Http.Get 2025-02-22 21:41:48 -05:00
045893b6c6 Everywhere: Be more granular with @db_save_* calls 2025-02-22 20:38:35 -05:00
a9f5a1de0c Slon/Modules/ActivityPub: Deduplicate signed requests into @slon_activitypub_signed_request 2025-02-22 19:25:23 -05:00
d6c1b8dbfd Slon/Api/V1/Timelines: Implement public timeline 2025-02-21 18:38:11 -05:00
66074a5472 Everywhere: Use session->path() 2025-02-21 18:10:25 -05:00
ff5a07dc04 Everywhere: Make session->content_type() callable 2025-02-21 18:03:12 -05:00
614e68194b Slon/Modules/NodeInfo: Implement .well-known/nodeinfo and nodeinfo/2.0 2025-02-21 17:44:54 -05:00
545d408512 Everywhere: Make session->path(), session->path_count() callable 2025-02-21 16:51:22 -05:00
3728d56ea0 Everywhere: Make session->verb() callable 2025-02-21 11:13:31 -05:00
2b03e16583 Slon/Modules/ActivityPub: Don't assume actor is signatory when fetching public key for signature verification 2025-02-20 11:44:43 -05:00
c6f74cfa84 Everywhere: Make session->send() callable 2025-02-20 08:24:04 -05:00
e757758289 Slon/Modules/ActivityPub: Allow federated replies to posts on user's home timeline 2025-02-19 22:56:22 -05:00
71c8db66f1 Everywhere: Make session->header() callable 2025-02-19 21:53:31 -05:00
0960af9aef Slon/Modules/Http: Remove unused function @slon_http_set_status_code() 2025-02-19 21:11:14 -05:00
6813c13ab3 Everywhere: Make session->status() callable 2025-02-19 21:07:09 -05:00
ca8e7ae7f6 Slon/Modules/ActivityPub: Accept statuses to/cc followed actors 2025-02-19 11:51:46 -05:00
591bd3ecbb Slon/Modules/ActivityPub: Propagate create/delete statuses to followers 2025-02-17 18:21:59 -05:00
16d65c88ee Slon/Api/V1/Accounts: Implement Follow 2025-02-17 17:39:49 -05:00