Commit graph

341 commits

Author SHA1 Message Date
Laura Hausmann
7aec669d73
[backend] Code cleanup 2024-10-25 06:49:28 +02:00
5a63787c39 [backend] refactor mastoapi bitecontroller routes 2024-10-25 01:44:54 +02:00
0a8b7dbf7a [backend] add mastoapi routes for biting notes and biting back users, add alternate route for biting users, and fix biting through mastoapi 2024-10-25 01:44:54 +02:00
kopper
27ac36d747
[backend] Add config option to sign reply backfills with requesting user
Signed-off-by: Laura Hausmann <laura@hausmann.dev>
2024-10-24 21:18:58 +02:00
kopper
7173373330
[backend/federation] Improved reply backfill
Instead of backfilling every note we come across that has a reply
collection, only schedule a backfill job if someone wants to see the
replies (on GET MastoAPI /context, or Iceshrimp API /descendants)

Reply backfilling is also done on a ThreadIdOrId basis as opposed to the
previous way of backfilling individual notes. This allows us finer
grained control over the recursion and frees up the job queue, alongside
allowing for easier implementation of context collection backfill in the
future (by mapping each context collection to a thread)

---

Currently, note threads are implicit based on the "threadId" column of a
note, which can be null (where it's the same as the note's "id")

This commit turns note threads into an actual entity, and as a part of
that, makes "threadId" non-nullable (by specifically setting it to "id"
for those cases)

This is done to attach extra metadata to the entire thread, currently
just the time of when it was last backfilled, but more may be added in
the future (the context collection associated with this thread, for example)

---

The data format for backfill jobs have backwards-incompatibly changed
since the introduction of the feature. We can drop all old jobs without
causing too much trouble as they will be re-scheduled on demand

---

Signed-off-by: Laura Hausmann <laura@hausmann.dev>
2024-10-24 21:18:57 +02:00
Laura Hausmann
f19a414b27
[backend/federation] Refactor UserResolver (ISH-548) 2024-10-24 01:48:09 +02:00
Laura Hausmann
e753bacb1d
[backend] Code cleanup 2024-10-24 01:41:49 +02:00
pancakes
13955e7efe [backend/masto-client] Move Bite from Pleroma to Mastodon 2024-10-23 05:04:55 +02:00
pancakes
8cbca253e8 [backend/masto-client] Add Bite extension 2024-10-23 05:04:55 +02:00
Laura Hausmann
365c3f6f1d
[backend/api] Make avatar/banner updates user the files' AccessUrls instead of the Urls 2024-10-13 04:52:37 +02:00
Laura Hausmann
a5a2c0b169
[backend/core] Add basic reject policies, along with a highly extensible system for rewrite policies (ISH-16) 2024-10-09 04:34:23 +02:00
Laura Hausmann
304d9f2750
[backend/masto-client] Enforce RestrictedNoMedia public preview mode 2024-09-24 01:02:05 +02:00
Laura Hausmann
1c2079e1ee
[backend] Rework GracefulException throws without additional detail 2024-09-24 00:45:18 +02:00
Laura Hausmann
afe62b0aab
[sln] Code cleanup 2024-09-13 21:44:31 +02:00
Laura Hausmann
3ec05df62f
[backend/masto-client] Don't report git revision to mastodon clients 2024-09-13 18:20:31 +02:00
Kopper
6d8c686401 [backend/akko-client] Expose quote notifications as mention notifications
This is a bit difficult of a situation as Akkoma does not have quote
notifications. This is the closest thing we have and the frontend seems
to handle it well.
2024-09-13 17:30:05 +02:00
Kopper
7cd5f0776b [backend/akko-client] Cleanup and reformat 2024-09-13 17:30:05 +02:00
Kopper
7518cf7422 [backend/akko-client] Handle websocket ping 2024-09-13 17:30:05 +02:00
Kopper
e01e241fc7 [backend/akko-client] Un-break Moshidon 2024-09-13 17:30:05 +02:00
Kopper
bfa69933c5 [backend/akko-client] Fix reaction notifications for custom emoji 2024-09-13 17:30:05 +02:00
Kopper
bcb6382c73 [backend/akko-client] Fix context of boosts 2024-09-13 17:30:05 +02:00
Kopper
16c0cba1f4 [backend/akko-client] Attempt to fix reaction account IDs 2024-09-13 17:30:05 +02:00
Kopper
9d6d892091 [backend/akko-client] Fix notifications, including emoji reaction notifications 2024-09-13 17:30:05 +02:00
Kopper
30cf0db0fb [backend/akko-client] Un-break Enafore 2024-09-13 17:30:05 +02:00
Kopper
fefe599d32 [backend/akko-client] Add reaction endpoints 2024-09-13 17:30:05 +02:00
Kopper
0e7e2698e0 [backend/akko-client] Expose VAPID public key 2024-09-13 17:30:05 +02:00
Kopper
3fb8fea316 [backend/akko-client] Expose conversation ID 2024-09-13 17:30:05 +02:00
Kopper
410519dafa [backend/akko-client] Stub out preview flag to not accidentally spam people 2024-09-13 17:30:05 +02:00
Kopper
e3a41c6190 [backend/akko-client] Expose required pleroma.emoji_reactions field 2024-09-13 17:30:05 +02:00
Kopper
1e34d38c75 [backend/masto-client] Implement support for reaction notifications
Not upstream viable because the mastoapi reaction notifications do not
let you see which reaction that notification is about...
2024-09-13 17:30:05 +02:00
Laura Hausmann
2fa0874d3c
[backend/masto-client] Fix filter keyword edits failing (ISH-432) 2024-09-06 23:29:09 +02:00
Laura Hausmann
b50121d0a1
[backend/api-shared] Fix upload of files larger than 28MB. 2024-09-05 22:33:55 +02:00
Kopper
89efdff3c0 [backend/masto-client] Signal to clients that we allow both polls and media in the same post
While perusing through Glitch's PRs, I came across the patch from Chuckya
that lifts this restriction[0].

The patch exposes this restriction has been lifted with an extra flag in
the /api/v1/instance endpoint. Since Iceshrimp.NET does not have such a
restriction, signal the same flag so clients can adjust themselves
accordingly.

Clients don't seem to be aware of this flag just yet so this likely
won't have any immediate effects.

[0]: https://github.com/glitch-soc/mastodon/pull/2524
2024-08-31 21:48:34 +03:00
Laura Hausmann
8267bc06de
[backend] Code cleanup 2024-08-14 03:53:15 +02:00
Laura Hausmann
4f98fa8461
[backend/federation] Fix possibly unbounded UserResolver recursion 2024-08-14 03:44:14 +02:00
Laura Hausmann
86a5da5418
[backend/streaming] Switch to WriteLockingHashSet for cached streaming connection data 2024-08-13 17:39:59 +02:00
Laura Hausmann
3132b6b8c9
[backend/core] Fix note thread mute handling inconsistencies 2024-08-13 03:11:09 +02:00
Laura Hausmann
c07bb35548
[backend/drive] Refactor ImageProcessor into a modular system
This commit lays the groundwork for a user-configurable image processing pipeline. It has exactly the same behavior as the old ImageProcessor, just modular & compartmentalized. It also adds support for AVIF & JXL encoding, though no code paths call it just yet.
2024-08-12 03:21:03 +02:00
Laura Hausmann
c7d0280eb6
[backend] Use SemaphorePlus instead of SemaphoreSlim 2024-07-22 05:59:41 +02:00
Laura Hausmann
0e9a15e9dd
[backend/masto-client] Trim ':' character from custom emoji names
Some clients don't expect this and will duplicate the leading/trailing colon.
2024-07-14 22:34:34 +02:00
Laura Hausmann
1e8f1cb964
[backend/database] Migrate references to Note.ThreadId ?? Note.Id to Note.ThreadIdOrId 2024-07-14 22:06:29 +02:00
Laura Hausmann
6b6bb53668
[backend/masto-client] Add note mute/unmute endpoints (ISH-417) 2024-07-14 22:06:29 +02:00
Laura Hausmann
f45b020699
[backend/masto-api] Fix hideInaccessible not being respected in streaming connection updates 2024-07-14 20:41:05 +02:00
Laura Hausmann
9233e43b81
[backend/api-shared] Don't dispose DbContext prematurely in streaming connection handlers 2024-07-13 15:59:35 +02:00
Laura Hausmann
1d43f2c30b
[backend/api-shared] Add thread mute support (ISH-172) 2024-07-13 01:35:28 +02:00
Laura Hausmann
f42aeee2fd
[backend/api] Add filter endpoints (ISH-339) 2024-07-13 00:36:49 +02:00
Laura Hausmann
b504bf2548
[backend/masto-client] Support client_credentials grant type (ISH-416) 2024-07-12 18:18:09 +02:00
Laura Hausmann
9c8debb5ed
[backend/masto-client] Improve error message when requesting an oauth token with a grant_type other than authorization_code 2024-07-12 17:48:54 +02:00
Laura Hausmann
81974db0f7
[backend/api] Expose new user_settings flags in SettingsController 2024-07-10 02:55:57 +02:00
Laura Hausmann
09cda1a89e
[backend/database] Move user_profile columns that only concern local users to user_settings
This commit also removes a bunch of obsolete user_profile columns.
2024-07-10 02:55:57 +02:00