a4d127796c
Slon/Api/V1/Statuses: Properly increment reblogs_count locally
...
We create a clone of the object to apply the user's actions (pinned,
reblogged, etc.) and we were passing this clone to
@slon_api_(reblog|unreblog)_status(), instead of the actual object.
2025-03-22 18:35:51 -04:00
0d19f9fa33
Slon/Api/V1/Accounts: Handle badly-behaved JSON API clients
...
An array of String is still an array, even if it contains a single
element. I'm looking at you,
[Tuba](https://github.com/GeopJr/Tuba/blob/main/src/API/Relationship.vala#L48 ).
Ref: https://docs.joinmastodon.org/methods/accounts/#relationships
It shouldn't be our responsibility to handle this, but life isn't fair,
so we'll begrudgingly handle it anyway.
2025-03-21 16:34:55 -04:00
0d88ccf0c4
Slon/Api/V1/Statuses: Don't require authorization for 'context' endpoint
2025-03-21 09:18:51 -04:00
022fceb21b
Slon/Api/V1/Notifications: Add initial support for Notifications
2025-03-20 09:54:24 -04:00
966be78422
Slon/Api/V1/Polls: Implement Polls
...
Fixes #8
2025-03-16 19:21:44 -04:00
35ff50746c
Slon/Api/V1/Statuses: Implement Boosts
...
Fixes #4
2025-03-15 20:28:04 -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
a4a959d875
Meta: Suppress compiler warnings
2025-03-12 20:49:05 -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
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
d5a09373e4
Everywhere: Update JSON API
2025-03-09 19:39:44 -04: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
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
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
6f11f7830d
Slon/Api/V1/Statuses: Handle 'sensitive' parameter if POSTed as string rather than boolean
2025-03-01 21:27:09 -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
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
90e553abc3
Slon/Api/V1/Statuses: Implement GET /api/v1/statuses/:id
2025-02-28 11:26:33 -05:00
19893a775d
Slon/Api/V1/Accounts: Deduplicate relationship object creation into @slon_accounts_default_relationship_object
2025-02-23 06:13:19 -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
6c87604d56
Everywhere: Deduplicate status queries into @slon_api_v1_statuses_query
2025-02-22 20:58:56 -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
545d408512
Everywhere: Make session->path(), session->path_count() callable
2025-02-21 16:51:22 -05:00
69a4d6916f
Slon/Api/V1/Accounts,Timelines: Sort statuses by most recent first
2025-02-20 14:28:39 -05:00
c6f74cfa84
Everywhere: Make session->send() callable
2025-02-20 08:24:04 -05:00
71c8db66f1
Everywhere: Make session->header() callable
2025-02-19 21:53:31 -05:00
6813c13ab3
Everywhere: Make session->status() callable
2025-02-19 21:07:09 -05:00
cf5b8fe46a
Slon/Api/V1/Statuses: Don't set internal deleted flag on status object being sent via ActivityPub
2025-02-17 18:50:04 -05:00
16d65c88ee
Slon/Api/V1/Accounts: Implement Follow
2025-02-17 17:39:49 -05:00