Commit graph

5101 commits

Author SHA1 Message Date
Laura Hausmann f90607146d
[backend] Make ResyncWithOrm migration idempotent 2023-10-14 20:52:12 +02:00
Laura Hausmann fe165dd4d3
[backend] Cache mention uri in resolveMentionWithFallback 2023-10-14 17:45:59 +02:00
Laura Hausmann c0d7ecf5c3
[backend] Actually resolve with objectHost 2023-10-14 17:40:06 +02:00
Laura Hausmann 8719a6922e
[backend] More mentions fixes 2023-10-14 17:11:21 +02:00
Laura Hausmann 588a39f17a
[backend] Don't refresh user data in resolveMentionWithFallback 2023-10-14 16:57:04 +02:00
Laura Hausmann ce29c1dce2
[mastodon-client] Use improved mention parsing in mfm-to-html 2023-10-14 16:48:49 +02:00
Laura Hausmann 349f770166
[backend] Actually try to resolve unknown mentions in mfm-to-html 2023-10-14 16:39:24 +02:00
Laura Hausmann 72f048a24d
[backend] Parse incorrectly formatted mentions in from-html 2023-10-14 16:12:22 +02:00
Laura Hausmann c02747116d
[backend] Fix typo 2023-10-14 15:37:28 +02:00
Laura Hausmann b33ca93195
[backend] Fix resync-with-orm migration
Due to a previously missing constraint there could be references to deleted users in the renote_muting table, this cleans that up.
2023-10-14 15:35:52 +02:00
Laura Hausmann 0261a666f1
[backend] Resync migrations with TypeORM
It appears people have been writing manual migrations for a while now, often containing errors that create duplicate or unused indicies, unique constraints on primary key columns, and so on. This commit resolves these, so migrations can be autogenerated again from now on.
2023-10-14 15:23:35 +02:00
Laura Hausmann 0dc2d5efa0
[mastodon-client] Actually display early errors in the OAuth process 2023-10-14 14:47:14 +02:00
Laura Hausmann c7e0659cfb
[mastodon-client] Fix handling of long redirect URIs in the oauth_token table 2023-10-14 14:41:49 +02:00
Laura Hausmann 2c0a006af6
[mastodon-client] Fix double-urlencoded redirect URLs
This fixes login in elk.zone
2023-10-14 14:41:49 +02:00
Laura Hausmann e5dc89c1cb
[mastodon-client] Fix type hints in AuthHelpers 2023-10-14 14:07:10 +02:00
Laura Hausmann 7b951f76ed
[mastodon-client] Add additional fields to /v1/apps response
This is undocumented under https://docs.joinmastodon.org/entities/Application/ but some apps expect it anyway.
2023-10-14 13:55:03 +02:00
Laura Hausmann c46ea29ba3
[mastodon-client] Fix streaming API url
This fixes a regression where some clients were unable to connect to the streaming API.
The /mastodon suffix was previously removed in other parts of the code as too many clients didn't respect it, however it was not removed here, leaving clients that do respect it are unable to connect.
2023-10-14 13:30:31 +02:00
Laura Hausmann 2192d5c668
[mastodon-client] Fix long redirect URIs 2023-10-14 03:22:21 +02:00
Laura Hausmann d049de2935
[mastodon-client] Fix scopes parsing error in auth helper 2023-10-14 00:58:54 +02:00
Laura Hausmann 1c2b914164
[mastodon-client] Switch from MiAuth to OAuth 2023-10-14 00:19:10 +02:00
Laura Hausmann b5393e41d0
[mastodon-client] Add support for public:allow_local_only stream 2023-10-13 23:54:55 +02:00
Laura Hausmann f14b3cec97
[backend] Automatically generate vapid/web-push keys
Co-authored-by: Johann150 (563f3672a9)
2023-10-13 19:23:36 +02:00
Laura Hausmann b53b7a8654
[backend] Remove check:connect script and js file 2023-10-13 18:46:20 +02:00
Laura Hausmann bb5d0e319d
[backend] Add missing postgres types 2023-10-13 18:44:25 +02:00
Laura Hausmann 1927151aed
[baackend] Move migrations to typescript 2023-10-13 18:44:25 +02:00
Laura Hausmann b335fda4b0
[client] Fix user autocomplete not disappearing 2023-10-13 16:42:04 +02:00
Laura Hausmann ef14e0221b
[backend] Ignore capitalization for remoteuserinfo in mfm-to-html 2023-10-13 02:20:55 +02:00
Laura Hausmann bab61d2a32
[client] Fix mention autocomplete 2023-10-12 22:38:32 +02:00
Laura Hausmann da5939d1d6
[mastodon-client] Proper user search autocomplete 2023-10-12 21:46:34 +02:00
Laura Hausmann 0e39313ac4
[mastodon-client] Correctly parse invalid remote mentions 2023-10-12 21:39:18 +02:00
Laura Hausmann 0616edffa8
[mastodon-client] Return edit history in correct order 2023-10-12 20:51:35 +02:00
Laura Hausmann 5e61be286c
[mastodon-client] Add max_toot_chars to /v1/instance 2023-10-12 19:27:37 +02:00
Laura Hausmann ef98c86958
[backend] Correctly return selected protocol for streaming API
This fixes compatibility with mastodon webclients in Google Chrome & derivatives
2023-10-12 17:59:41 +02:00
Laura Hausmann f843453ca0
[backend] Only render trailing slashes for URLs in profile fields when explicitly specified 2023-10-12 17:07:54 +02:00
Laura Hausmann 9167ba593c
[mastodon-client] Omit paragraph tags for user profile fields 2023-10-12 16:29:48 +02:00
Laura Hausmann 8c93f7eb68
[backend] Format urls in outgoing AP messages properly 2023-10-12 16:01:07 +02:00
Laura Hausmann 19f8c0aafc
[mastodon-client] Improve mfm-to-html handling of links 2023-10-12 15:52:41 +02:00
Laura Hausmann 9f8e1e5579
[mastodon-client] Don't duplicate quote uri if it's already in the note text 2023-10-12 00:29:18 +02:00
Laura Hausmann 44c70df1a6
[mastodon-client] Fix mentions in user bios 2023-10-12 00:23:20 +02:00
Laura Hausmann 1ff5102e34
[backend] Format mentions in outgoing AP messages properly 2023-10-12 00:10:53 +02:00
Laura Hausmann be28fae40f
[mastodon-client] Fix code block rendering
This doesn't work in all clients, but it works in more than the previous solution & matches what glitch-soc is doing.
2023-10-11 23:58:03 +02:00
Laura Hausmann 8d7d95fd23
[backend] Permit redirects for AP object lookups 2023-10-11 20:59:30 +02:00
Laura Hausmann 695528bed7
[mastodon-client] Log note lookup failures with logger instead of console 2023-10-11 19:55:26 +02:00
Laura Hausmann 1fdea9866a
[mastodon-client] Only display localpart for mentions in mfm-to-html 2023-10-11 19:15:56 +02:00
Laura Hausmann f5c6cba3a6
[mastodon-client] Correctly render remote mentions of local users 2023-10-11 19:15:32 +02:00
Laura Hausmann 73895e856c
[mastodon-client] Don't return 'next' link pagination header when there are not more results
This fixes clients like toot! showing ghost users
2023-10-11 18:33:33 +02:00
Laura Hausmann c1354ee5e7
[mastodon-client] Don't return reactions with count=0 2023-10-11 02:36:38 +02:00
Laura Hausmann 4717cc85b5
[mastodon-client] Use execQueryLinkPagination in more places 2023-10-11 01:45:52 +02:00
Laura Hausmann fef807a165
[mastodon-client] Fix link pagination prev attribute when minId is set 2023-10-11 01:26:29 +02:00
Laura Hausmann 3204bd9d18
[mastodon-client] Fix link pagination middleware oversight 2023-10-11 01:26:29 +02:00
Laura Hausmann a0adea70f5
[mastodon-client] Improve streaming api isMastodon check 2023-10-09 22:20:44 +02:00
Laura Hausmann 878970d318
[mastodon-client] Implement streaming API 2023-10-09 01:59:19 +02:00
Aylam 8eff42a3e0
Remove text shadow from post header 2023-10-08 14:05:32 +02:00
Laura Hausmann 01e6f7edbb
[mastodon-client] Respect ffVisibility for follower/following counts 2023-10-08 02:42:50 +02:00
Laura Hausmann db95d9a7f3
[mastodon-client] Fix polls param 2023-10-08 01:41:25 +02:00
Laura Hausmann 0f17691f00
[mastodon-client] GET /v1/accounts/search 2023-10-08 01:30:40 +02:00
Laura Hausmann c7d62223ef
[mastodon-client] Ignore invalid auth requests 2023-10-08 01:13:02 +02:00
Laura Hausmann 4d6111d1a4
[mastodon-client] Fix handling of empty tagged param in getUserStatuses 2023-10-08 01:09:30 +02:00
Laura Hausmann b3c186a14a
[mastodon-client] Only encode renote once in NoteConverter 2023-10-08 01:00:16 +02:00
Laura Hausmann 23a1114c02
[mastodon-client] Implement glitch reactions 2023-10-08 00:47:35 +02:00
Laura Hausmann 9d24f8aea5
[mastodon-client] Remove ID conversion
BREAKING: Please log out and log back in of any clients in use, as their cache is now invalid
2023-10-07 23:15:14 +02:00
Laura Hausmann 011d7f36c3
[mastodon-client] Set ctx.pagination in helper funcs 2023-10-07 22:05:58 +02:00
Laura Hausmann cc96b0ba72
[mastodon-client] Use ctx instead of ctx.user as arguments everywhere 2023-10-07 21:46:22 +02:00
Laura Hausmann 79c3e56989
[mastodon-client] Fully move cache into ctx 2023-10-07 20:29:58 +02:00
Laura Hausmann 8428f2efc4
[mastodon-client] Actually enforce NoteConverter.encode recursion prevention 2023-10-07 20:09:17 +02:00
Laura Hausmann 1cdeff9861
[mastodon-client] Generate pagination data in helper function
This also (finally) respects minId sort order.
2023-10-07 20:02:03 +02:00
Laura Hausmann 2899873b26
[mastodon-client] Use MastoApiError everywhere 2023-10-07 19:50:06 +02:00
Laura Hausmann cfd53259cb
[mastodon-client] Return emojis field for polls 2023-10-07 19:39:01 +02:00
Laura Hausmann 8bec41b554
[mastodon-client] Accept both types and exclude_types at the same time in GET /v1/notifications
This ensures compatibility with Mastodon for Android and its forks
2023-10-07 19:17:51 +02:00
Laura Hausmann 1cb935f483
[client] Reduce shadows for iceshrimp-light 2023-10-07 17:48:39 +02:00
Laura Hausmann 98fe5b3a54
[mastodon-client] Prevent duplicate reblogs 2023-10-07 17:34:22 +02:00
Laura Hausmann 47d9278eae
[mastodon-client] Return IdentifiableError ID if message is empty 2023-10-07 17:30:49 +02:00
Laura Hausmann f36515a221
[mastodon-client] Fix error when liking the same status twice 2023-10-07 17:27:45 +02:00
Laura Hausmann 8cbcb5766a
[backend] await renote & boost count increments on note create/delete 2023-10-07 16:55:04 +02:00
Laura Hausmann f800f1806c
[mastodon-client] Fix Link pagination for /v1/statuses/:id/reblogged_by 2023-10-07 14:43:52 +02:00
Laura Hausmann 99de127376
[mastodon-client] Return error messages for error types without a .message property 2023-10-07 14:32:02 +02:00
Laura Hausmann c8415a5223
[mastodon-client] Use ctx.cache for all endpoints 2023-10-07 02:12:26 +02:00
Laura Hausmann 937a8c76c8
[mastodon-client] Fix ids of trending statuses not being converted 2023-10-07 02:05:53 +02:00
Laura Hausmann bd2df99489
[mastodon-client] Add link pagination to all remaining paginating methods 2023-10-07 01:17:59 +02:00
Laura Hausmann 9dd3277ddb
[mastodon-client] Use structuredClone for id converters 2023-10-07 00:36:49 +02:00
Laura Hausmann 3bc4afec77
[mastodon-client] Set correct access-control-expose-headers response header 2023-10-07 00:36:49 +02:00
Laura Hausmann 081b836e92
[mastodon-client] Move link header pagination to middleware 2023-10-06 23:35:13 +02:00
Laura Hausmann 3d320c0895
[mastodon-client] Fix urlencoded redirect_uris 2023-10-06 23:35:07 +02:00
Laura Hausmann 153c08fae1
[mastodon-client] Fix getNoteOr404 2023-10-06 03:26:04 +02:00
Laura Hausmann afd9e236a3
[mastodon-client] Code cleanup & reformat 2023-10-06 03:12:52 +02:00
Laura Hausmann 8bc7bf373e
[mastodon-client] Handle ApiError in CatchErrorsMiddleware 2023-10-06 03:09:22 +02:00
Laura Hausmann a3d2330f26
[mastodon-client] Code cleanup and refactor for /oauth/token 2023-10-06 01:22:42 +02:00
Laura Hausmann 4b76d0ce6f
[mastodon-client] Migrate endpoints to auth middleware 2023-10-06 01:08:30 +02:00
Laura Hausmann 5d17996d5f
[mastodon-client] Fix verify_credentials occasionally showing outdated data 2023-10-05 21:14:15 +02:00
Laura Hausmann 01b5af2686
[mastodon-client] PATCH /v1/accounts/update_credentials 2023-10-05 19:22:41 +02:00
Laura Hausmann 75f6732928
[mastodon-client] Replace koa-multer with koa-body 2023-10-05 18:45:38 +02:00
Laura Hausmann 60f314cb87
[mastodon-client] Fix handling of undefined in normalizeComposeOptions & normalizeEditOptions 2023-10-05 18:07:20 +02:00
Laura Hausmann 5d1bfd2e50
[mastodon-client] Fix handling of posts with empty cw / text field 2023-10-05 17:41:49 +02:00
Laura Hausmann 73ac3048ef
[mastodon-client] Correctly return status.tags 2023-10-05 17:19:40 +02:00
Laura Hausmann d39a3f2f66
[client] Fix default theme missing shadows 2023-10-05 16:10:27 +02:00
Laura Hausmann 98b451bf05
[mastodon-client] Emoji category should be string or undefined 2023-10-05 15:09:06 +02:00
Laura Hausmann 3132ff5ca0
[mastodon-client] Prevent NoteConverter from recursing indefinitely 2023-10-05 15:08:34 +02:00
Laura Hausmann 37b5a8d71d
[backend] Cleanup oauth debug logging 2023-10-05 14:38:14 +02:00
Laura Hausmann 0611651409
Remove megalodon 2023-10-05 14:36:14 +02:00
Laura Hausmann e33c7c5b0f
[backend] remove broken mastodon websocket support 2023-10-05 14:35:33 +02:00
Laura Hausmann 75d6af8485
[mastodon-client] GET /oauth/token 2023-10-05 14:34:52 +02:00
Laura Hausmann 4e177419eb
[mastodon-client] GET /v1/preferenes 2023-10-05 14:16:28 +02:00
Laura Hausmann ec55071eb2
[mastodon-client] GET /v1/trends/{statuses,hashtags,links} 2023-10-05 02:38:26 +02:00
Laura Hausmann fb7713c424
[mastodon-client] GET /v1/custom_emoji 2023-10-05 02:08:12 +02:00
Laura Hausmann 5f0d140bbe
[mastodon-client] GET /v2/suggestions 2023-10-05 01:51:21 +02:00
Laura Hausmann 44b72a2ecc
[mastodon-client] GET /v1/announcements, POST /v1/announcements/:id/dismiss 2023-10-05 00:58:54 +02:00
Laura Hausmann 059a20f4b1
[mastodon-client] Make filter endpoints refer to web frontend 2023-10-05 00:11:39 +02:00
Laura Hausmann f5e28fc27a
[mastodon-client] Refactor object id converters 2023-10-04 23:54:45 +02:00
Laura Hausmann f0cedf4f39
[mastodon-client] Replace array helper function with preexisting prelude function 2023-10-04 23:52:03 +02:00
Laura Hausmann 2a64fe4ebf
[mastodon-client] GET /v1/instance 2023-10-04 23:42:54 +02:00
Laura Hausmann c90161189f
[mastodon-client] Improve query performance 2023-10-04 23:16:52 +02:00
Laura Hausmann f87712040d
[backend] Remove /api/i/get-unsecure endpoint 2023-10-04 23:14:57 +02:00
Laura Hausmann ad7c58b8d7
[mastodon-client] Add visibility checks for status.reblogged_by 2023-10-04 23:13:47 +02:00
Laura Hausmann 7f6ac71dd0
[mastodon-client] Respect ffVisibility 2023-10-04 23:07:50 +02:00
Laura Hausmann a515b6b4d4
[mastodon-client] Fix ordering of conversations 2023-10-04 23:07:38 +02:00
Laura Hausmann bbc0f0278a
[mastodon-client] Improve pagination helper function 2023-10-04 23:07:37 +02:00
Laura Hausmann 557dd37fe8
[mastodon-client] Unread notifications 2023-10-04 22:01:18 +02:00
Laura Hausmann b8b6206b4e
[mastodon-client] Fix link pagination default limits 2023-10-04 22:01:17 +02:00
Laura Hausmann 3fb3f405ea
[mastodon-client] GET /v1/conversations 2023-10-04 22:01:17 +02:00
Laura Hausmann 2fef4b1982
[mastodon-client] GET /v1/timelines/tag/:hashtag 2023-10-04 22:01:17 +02:00
Laura Hausmann d2c9238a18
[mastodon-client] Add stubs for featured_tags and followed_tags 2023-10-04 22:01:17 +02:00
Laura Hausmann 4fe62e62c3
[mastodon-client] GET /accounts/:id/lists 2023-10-04 22:01:17 +02:00
Laura Hausmann 239fef3e71
[mastodon-client] DELETE /lists/:id/accounts 2023-10-04 22:01:17 +02:00
Laura Hausmann 94d75585b4
[mastodon-client] PUT /lists/:id 2023-10-04 22:01:17 +02:00
Laura Hausmann 53c0d52fcd
[mastodon-client] POST /lists 2023-10-04 22:01:17 +02:00
Laura Hausmann eecd911bf6
[mastodon-client] POST /lists/:id/accounts 2023-10-04 22:01:16 +02:00
Laura Hausmann 8a22659cba
[mastodon-client] DELETE /lists/:id 2023-10-04 22:01:16 +02:00
Laura Hausmann 267624c7a3
[mastodon-client] Also return edit history if post is unedited 2023-10-04 22:01:16 +02:00
Laura Hausmann 137ede02ce
[mastodon-client] Fix timeline helper function 2023-10-04 22:01:16 +02:00
Laura Hausmann a3722d2dce
[mastodon-client] GET /timelines/list/:listId 2023-10-04 22:01:16 +02:00
Laura Hausmann f388eb2135
[mastodon-client] Update notifications default and max limit to mastodon v4.1.0 values 2023-10-04 22:01:16 +02:00
Laura Hausmann 4559b135cb
[mastodon-client] Code cleanup & reformat 2023-10-04 22:01:16 +02:00
Laura Hausmann 2e7ac53c20
[mastodon-client] Use modified mfm-to-html renderer 2023-10-04 22:01:16 +02:00
Laura Hausmann 633fe46fb5
[mastodon-client] GET /lists, /lists/:id, /lists/:id/accounts 2023-10-04 22:01:15 +02:00
Laura Hausmann a7ce94fb29
[mastodon-client] GET /statuses/:id/source 2023-10-04 22:01:15 +02:00
Laura Hausmann ae91ffbb8a
[mastodon-client] Fix resolving remote users that aren't yet in the database 2023-10-04 22:01:15 +02:00
Laura Hausmann 947f5ba1e2
[mastodon-client] GET /v1/search 2023-10-04 22:01:15 +02:00
Laura Hausmann 5e0c2eb497
[mastodon-client] GET /v2/search 2023-10-04 22:01:15 +02:00
Laura Hausmann 0f497f7fec
[mastodon-client] Fix request body handling for polls 2023-10-04 22:01:15 +02:00
Laura Hausmann fb8b2ce0df
[mastodon-client] GET /polls/:id, POST /polls/:id/votes 2023-10-04 22:01:15 +02:00
Laura Hausmann 85a13d8bd7
[mastodon-client] GET /statuses/:id/history 2023-10-04 22:01:14 +02:00
Laura Hausmann 9454540385
[mastodon-client] Return status.edited_at 2023-10-04 22:01:14 +02:00
Laura Hausmann b0487e1e63
[mastodon-client] PUT /statuses/:id 2023-10-04 22:01:14 +02:00
Laura Hausmann 0719d9abbc
[client] Clean up note edits 2023-10-04 22:01:14 +02:00
Laura Hausmann 500a85acb9
[backend] Rework note edits 2023-10-04 22:01:14 +02:00
Laura Hausmann e0fefc986f
[mastodon-client] Respect idempotency-key for new posts 2023-10-04 22:01:14 +02:00
Laura Hausmann fe15584834
[mastodon-client] POST /v1/statuses 2023-10-04 22:01:14 +02:00
Laura Hausmann b98294e5be
[mastodon-client] PUT /media/:id 2023-10-04 22:01:14 +02:00
Laura Hausmann a2dce0fa85
[mastodon-client] GET /media/:id 2023-10-04 22:01:13 +02:00
Laura Hausmann 9b223abeda
[mastodon-client] POST /{v1,v2}/media 2023-10-04 22:01:13 +02:00