Commit graph

93 commits

Author SHA1 Message Date
Laura Hausmann
9ff79c92e0
[backend/libmfm] Improve performance of AngleSharp calls for MFM-HTML conversion, improve UrlNode HTML representation
This makes sure the AngleSharp owner document is only created once per application lifecycle, and replaces all async calls with their synchronous counterparts (since the input is already loaded in memory, using async for this just creates overhead)
2025-03-24 18:05:21 +01:00
0b24eadf4c
[backend/akko-client] Add ThreadMuted to PleromaStatusExtensions so posts properly get set as muted on Pleroma clients 2025-03-23 09:36:40 -04:00
Laura Hausmann
2c3a9d49b1
[backend/akko-api] Fix IsPleroma flag not being used correctly 2025-03-23 00:05:35 +01:00
Laura Hausmann
eb65294219
[bakend/akko-api] Don't send note/notification entity pleroma extensions unless isPleroma is enabled for the auth token 2025-03-18 09:25:37 +01:00
Laura Hausmann
ffcc8d0582
[backend/akko-client] Set status visibility to local when client is marked as isPleroma and note is local only (ISH-658) 2025-03-15 02:13:07 +01:00
Laura Hausmann
caa5263af6
[backend/akko-client] Add LocalOnly to PleromaStatusExtensions (ISH-658) 2025-03-15 02:06:47 +01:00
Kopper
7e3320e3b1
[backend/masto-client] Populate Status.tags 2025-01-20 18:21:20 +01:00
Laura Hausmann
113bd98b0e
[backend/drive] Proxy remote media by default 2025-01-09 12:36:34 +01:00
Laura Hausmann
76a3f94fe8
[backend/masto-client] Fix missing replyInaccessible marker 2025-01-07 08:29:15 +01:00
Laura Hausmann
9de6d15a0c
[backend/masto-client] Move replyInaccessible marker into CW field for notes with CW 2025-01-07 08:14:33 +01:00
Laura Hausmann
b70de11da8
[backend/masto-client] Deduplicate filter matches by filter id 2025-01-01 02:12:01 +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
7dc3143089
[backend/masto-client] Return attachment metadata when available (ISH-657) 2024-12-12 00:34:34 +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
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
304d9f2750
[backend/masto-client] Enforce RestrictedNoMedia public preview mode 2024-09-24 01:02:05 +02:00
Laura Hausmann
afe62b0aab
[sln] Code cleanup 2024-09-13 21:44:31 +02:00
Kopper
7cd5f0776b [backend/akko-client] Cleanup and reformat 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
fefe599d32 [backend/akko-client] Add reaction endpoints 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
e3a41c6190 [backend/akko-client] Expose required pleroma.emoji_reactions field 2024-09-13 17:30:05 +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
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
6b6bb53668
[backend/masto-client] Add note mute/unmute endpoints (ISH-417) 2024-07-14 22:06:29 +02:00
Laura Hausmann
9c7c5595f3
[backend/masto-client] Fix quote/renote indicators sometimes being rendered incorrectly 2024-07-04 00:38:46 +02:00
Laura Hausmann
566ae8adfd
[backend/masto-client] Render quotes & quote/reply inaccessible indicators for notes with no text 2024-07-04 00:18:18 +02:00
Laura Hausmann
df3a7bdfe5
[backend] Apply formatting rules 2024-06-29 01:06:19 +02:00
pancakes
6b5a5a1a09
[backend/masto-client] Set category for emojis 2024-06-24 17:02:52 +10:00
Laura Hausmann
8d4dd6ab52
[backend/masto-client] Fix rendering of quote-renotes causing InvalidOperationException during database access 2024-06-20 13:34:01 +02:00
Laura Hausmann
fc2dcb5e97
[backend/masto-client] Revert NoteRenderer url/uri changes 2024-06-07 17:35:45 +02:00
Laura Hausmann
004d89e78a
[backend/masto-client] Improve account/status url/uri field compatibility 2024-06-05 17:44:48 +02:00
Laura Hausmann
24fd34755a
[backend/masto-client] Set StatusEntity.IsMuted to false instead of null 2024-06-05 17:40:47 +02:00
Laura Hausmann
28fa7eb5de
[backend/masto-client] Send empty string content for notes without text 2024-06-04 17:43:10 +02:00
Laura Hausmann
9636a096fc
[backend/masto-client] Respect filters in WebSocket connections (ISH-328) 2024-05-17 19:21:41 +02:00
Laura Hausmann
2c7490a304
[backend/masto-client] Always send text property on status entities (ISH-323) 2024-05-15 13:11:24 +02:00
Laura Hausmann
839f93ff66
[backend/api-shared] Fix emoji reactions not being rendered consistently 2024-05-14 16:34:18 +02:00
Laura Hausmann
61d6f73e90
[backend/masto-client] Fix edit history timestamps 2024-05-14 13:50:06 +02:00
Laura Hausmann
0ad4346e51
[backend/masto-client] Add user_settings feature flag for hiding inaccessible notes (ISH-303) 2024-05-02 23:33:41 +02:00
Laura Hausmann
df1c8e5475
[backend/masto-client] Set sensitive property when sensitive media is attached (ISH-292) 2024-05-02 22:34:42 +02:00
Laura Hausmann
baf3138286
[backend/masto-client] Improve inaccessible reply/quote detection 2024-05-01 16:29:27 +02:00
Laura Hausmann
d31860dbb3
[backend/core] Track renote/reply uri for notes where the target is inaccessible at time of ingestion (ISH-287) 2024-04-30 00:15:58 +02:00
Laura Hausmann
8b6812eaf9
[backend] Fix code style 2024-04-28 03:34:14 +02:00
Laura Hausmann
5c9a42a3f6
[backend/masto-client] Return reactions for unauthenticated users 2024-04-28 03:33:33 +02:00
Laura Hausmann
4774eb31ed
[backend/masto-client] Render quote-renotes correctly (ISH-281)
This time without the typo.
2024-04-28 00:28:17 +02:00
Laura Hausmann
ca56b93524
[backend/masto-client] Render quote-renotes correctly (ISH-281) 2024-04-28 00:03:52 +02:00
Laura Hausmann
5f86ffeffe
[backend/masto-client] Add edit history endpoint (ISH-274) 2024-04-25 02:08:30 +02:00