3468d97da9
Slon/Modules/Api: Update whitelist_ip to specify multiple values
...
The whitelist_ip setting will now match on any value encapsulated by
single quotes, regardless of delimiter.
2025-03-21 14:18:48 -04:00
022fceb21b
Slon/Api/V1/Notifications: Add initial support for Notifications
2025-03-20 09:54:24 -04:00
128d7d4f3a
Slon/Modules/ActivityPub: Use NULL account_id for status lookup
...
Fixes regression introduced by a5460ec
2025-03-17 23:52:09 -04:00
0a3e307916
Slon/Modules/ActivityPub: Increment replies_count on local status when receiving replies
2025-03-17 18:14:52 -04:00
a5460ece4b
Slon/Modules/ActivityPub: Use @slon_api_find_status_by_uri to handle receiving replies to statuses
2025-03-17 17:45:30 -04:00
966be78422
Slon/Api/V1/Polls: Implement Polls
...
Fixes #8
2025-03-16 19:21:44 -04:00
9a2a68ef93
Slon/Modules/Db: Load/save votes
2025-03-16 10:04:18 -04:00
8fc990670b
Slon/Modules/ActivityPub: Create Poll object if present
...
This creates a poll for a status received via ActivityPub, partially
implementing #8
2025-03-16 08:45:53 -04:00
35ff50746c
Slon/Api/V1/Statuses: Implement Boosts
...
Fixes #4
2025-03-15 20:28:04 -04:00
57ab5d1d1f
Slon/Modules/ActivityPub: Translate Announce requests to Boosts
...
When we receive an Announce from someone we are following, we will
lookup and/or create the author of the boosted status, followed by the
status itself, which will be attached to a new status from the followed
user as a "reblog" object. Partially implements #4 .
2025-03-15 18:22:48 -04:00
c4ec8ae999
Slon/Modules/ActivityPub: Add http_signature_is_always_valid option
...
For testing purposes, we can set http_signature_is always_valid to any
value in the db settings Object. This allows us e.g. to replay
ActivityPub payloads using curl, without having to deal with signatures
while we are implementing new features.
2025-03-15 18:02:47 -04:00
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