Commit graph

274 commits

Author SHA1 Message Date
pancakes
a5fedc930c
[backend/federation] Include media type for avatar and banner in UserRenderer 2025-01-30 11:11:22 +01:00
pancakes
fdadc41c61
[backend/federation] Include alt text for avatar and banner in UserRenderer 2025-01-30 11:11:21 +01:00
Laura Hausmann
1d64af7ed0
[backend/federation] Fix like activities with content not being processed as reactions 2025-01-27 15:57:54 +01:00
Laura Hausmann
905b7d173a
[backend/core] Switch to Iceshrimp.Utils.Common for Result<T> 2025-01-20 17:00:03 +01:00
Laura Hausmann
8acb9bd932
[backend/federation] Federate processed images with the correct mime type 2025-01-09 12:40:54 +01:00
Laura Hausmann
113bd98b0e
[backend/drive] Proxy remote media by default 2025-01-09 12:36:34 +01:00
Laura Hausmann
3bafb0ec7c
[backend/federation] Improve UserResolver uri/acct mismatch error message 2025-01-09 07:54:07 +01:00
Laura Hausmann
c3ca7d389d
[backend/federation] Use Uri struct comparison instead of string comparison when validating EnforceUri in UserResolver (ISH-679) 2025-01-07 06:13:07 +01:00
Laura Hausmann
49c85543a0
[backend/federation] Make UserResolver fall back to building the acct from actor uri when it's not contained in WebFinger response 2025-01-05 06:22:43 +01:00
Laura Hausmann
729e32594b
[backend/federation] Set MkContent to empty string when quote without text is rendered 2025-01-05 04:26:31 +01:00
Laura Hausmann
9865f3dde7
[backend/core] Replace MFM line endings during user/note ingestion
This saves significant amounts of time & memory during parsing.
2024-12-15 00:11:31 +01:00
Kopper
149fae3363
[backend] address review 2024-12-13 22:19:31 +01:00
Kopper
89060599eb
[backend] Implement inline media
Inline media can be created by:

1. Attach media to note as usual
2. Copy media URL (public one, for remote instances)
3. Use the new $[media url ] MFM extension to place it wherever you
   wish. (The trailing space is necessary as the parser currently
   treats the closing ] as a part of the URL)

The Iceshrimp frontend may make this easier later on (by having a
"copy inline MFM" button on attachments, maybe?)

Federates as <img>, <video>, <audio>, or <a download> HTML tags
depending on the media type for interoperability. (<a download> is
not handled for incoming media yet).

The media will also be present in the attachments field, both as a
fallback for instance software that do not support inline media,
but also for MFM federation to discover which media it is allowed to
embed (and metadata like alt text and sensitive-ness). This is not
required for remote instances sending inline media, as it will be
extracted out from the HTML.

The Iceshrimp frontend does not render inline media yet. That is
blocked on #67.
2024-12-13 22:19:30 +01:00
Laura Hausmann
911480afcb
[backend] Remove unused imports 2024-12-11 19:58:52 +01:00
Laura Hausmann
b160a97f0e
[backend/core] Fix ArrayTypeMismatchException in APMentionsResolver 2024-12-07 04:41:00 +01:00
Laura Hausmann
5dee8bc783
[parsing] Bump MfmSharp version 2024-12-07 04:41:00 +01:00
Laura Hausmann
443f0682d2
[backend/core] Fix out of bounds array read in APMentionsResolver 2024-12-06 19:07:17 +01:00
Laura Hausmann
00e157cc7e
[parsing] Switch to MfmSharp 2024-12-06 18:14:00 +01:00
Kopper
36d9a8cc49
[backend/federation] Context collection 2024-11-23 18:20:41 +01:00
Laura Hausmann
863c9ca9c9
[backend/federation] Improve actor & note validation (ISH-547) 2024-11-20 23:54:32 +01:00
Laura Hausmann
727ba75d0e
[backend/federation] Deduplicate recipients in ActivityDeliverService 2024-11-20 01:31:14 +01:00
Laura Hausmann
a762a9201e
[backend/core] Revert IAsyncEnumerable naming 2024-11-20 01:12:32 +01:00
Laura Hausmann
24b412bd75
[sln] Reformat code 2024-11-20 00:48:29 +01:00
Laura Hausmann
7dec2514da
[sln] Apply code style 2024-11-20 00:48:29 +01:00
Laura Hausmann
4356a47b9d
[backend/asp] Make services runtime-discoverable 2024-11-18 19:02:44 +01:00
Laura Hausmann
6c76b2b2c5
[backend] Switch params methods to IEnumerable<T> 2024-11-18 19:02:41 +01:00
Laura Hausmann
a18c1c59ea
[parsing] Fix compatibility with the new F# reference type nullability checks 2024-11-18 19:02:41 +01:00
Kopper
d22a21c7e7
[backend/federation] Render Create in /notes/{id}/activity when not a renote 2024-11-07 20:13:47 +01:00
pancakes
925ba3c751
[backend] Directly render ASReject 2024-11-03 13:02:12 +10:00
Laura Hausmann
f2853d2d40
[backend] Fix typo 2024-11-02 22:56:52 +01:00
Laura Hausmann
a5f292cdb3
[backend/core] Fix UserResolver regression 2024-10-29 20:38:51 +01:00
Laura Hausmann
b43e81b834
[backend/federation] Switch to Uri.TryCreate local fetch checks 2024-10-29 18:43:58 +01:00
Laura Hausmann
d36fa802d8
[backend/federation] Add extra guard clauses to ActivityHandlerService
This should be caught by InboxValidationMiddleware, but more checks are always a good idea.
2024-10-29 15:10:40 +01:00
Laura Hausmann
e3a289ec48
[backend/federation] Update UserResolver docs 2024-10-28 13:04:48 +01:00
Laura Hausmann
e6e9d75f1a
[backend/federation] Fix followers-only announce visibility checks (ISH-555)
This bug caused followers-only announce activities to be saved as specified when the activity actor was not inlined (which it is not in most cases), and the followers collection URI is not the well-known one.
2024-10-27 23:03:52 +01:00
Laura Hausmann
330de26346
[backend/core] Fix race condition causing transient user resolution errors 2024-10-26 06:15:45 +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
dd8a59db13
[backend/federation] Fix typo causing confusing log messages in ActivityHandlerService 2024-10-23 17:48:29 +02:00
pancakes
bf5eb688c5 [backend] Remove unnecessary Compact calls 2024-10-23 05:04:55 +02:00
pancakes
3218de9f56 [backend] Implement RenderBite, BiteService and endpoints for note and user 2024-10-23 05:04:55 +02:00
Laura Hausmann
d625a34e2a
[backend/core] Improve code reuse 2024-10-16 20:59:47 +02:00
Laura Hausmann
3a606a58f1
[backend/core] Code cleanup 2024-10-16 20:53:14 +02:00
Laura Hausmann
e9389d154b
[backend/core] Fix typo 2024-10-16 20:52:37 +02:00
Laura Hausmann
3c96d98932
[backend/core] Only deliver create/update activities to remote users, unify DeliverToConditionalAsync calls 2024-10-16 20:51:40 +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
0962b07021
[backend/core] Catch errors in NoteService.ResolveNoteAsync
This fixes some inbox job failures, for example when a post quoting a deleted post is being ingested.
2024-10-06 14:04:06 +02:00
Laura Hausmann
7662c28745
[backend/database] Canonicalize punycode host representations to lowercase 2024-10-02 01:16:25 +02:00
Laura Hausmann
df26db0585
[backend/federation] Add relay support (ISH-266) 2024-09-28 00:32:43 +02:00