Commit graph

146 commits

Author SHA1 Message Date
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
00e157cc7e
[parsing] Switch to MfmSharp 2024-12-06 18:14:00 +01:00
Laura Hausmann
863c9ca9c9
[backend/federation] Improve actor & note validation (ISH-547) 2024-11-20 23:54:32 +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
dd7b7634c6
[backend/core] Convert scoped services with request-specific properties to singletons by utilizing AsyncLocal<T> 2024-11-18 19:02:44 +01:00
Laura Hausmann
4356a47b9d
[backend/asp] Make services runtime-discoverable 2024-11-18 19:02:44 +01:00
Laura Hausmann
b6dddd9439
[backend/core] Trim UserPublicKey before inserting into database 2024-11-12 20:57:16 +01:00
pancakes
925ba3c751
[backend] Directly render ASReject 2024-11-03 13:02:12 +10:00
pancakes
dd82e457d0 [backend] Use RenderUnfollow to remove follower 2024-11-03 03:00:58 +01:00
pancakes
ea5408c182 [backend/api] Add remove from followers endpoint 2024-11-03 03:00:58 +01:00
Laura Hausmann
f2853d2d40
[backend] Fix typo 2024-11-02 22:56:52 +01:00
Laura Hausmann
e61e3d2fde
[backend/api] Wait for user mention resolution before returning (ISH-567) 2024-10-31 21:02:56 +01:00
pancakes
137dc0d0e6
[backend/core] Move import/export to ImportExportService and resolve imported users 2024-10-31 20:48:07 +01:00
pancakes
bfc36cbc48
[backend/api] Add follow list export endpoint 2024-10-31 20:48:07 +01:00
pancakes
62aa5f3075
[backend/api] Add follow list import endpoint 2024-10-31 20:48:07 +01:00
Laura Hausmann
b43e81b834
[backend/federation] Switch to Uri.TryCreate local fetch checks 2024-10-29 18:43:58 +01:00
Laura Hausmann
5d1e1ed05d
[backend/federation] Add extra guard clauses to UserService
This should be caught by WebFingerService, but more checks are always a good idea.
2024-10-29 16:10:39 +01:00
Laura Hausmann
f19a414b27
[backend/federation] Refactor UserResolver (ISH-548) 2024-10-24 01:48:09 +02:00
Laura Hausmann
5f5a0c5c0f
[backend/api] Add moderation endpoints (ISH-116) 2024-10-09 19:11:54 +02:00
Laura Hausmann
d62ac94d5e
[backend/core] Fix migrations that move more than 50 followers failing 2024-10-05 23:46:09 +02:00
Laura Hausmann
5cda865202
[backend/core] Fix migrations causing erroneous "You can't follow yourself" log errors 2024-10-05 23:46:09 +02:00
Laura Hausmann
ee6d80aaa2
[backend/core] Move relationships after sending out the migration activity 2024-10-05 23:46:04 +02:00
Laura Hausmann
7662c28745
[backend/database] Canonicalize punycode host representations to lowercase 2024-10-02 01:16:25 +02:00
Laura Hausmann
4cfd4de389
[backend/core] Disallow following of system users 2024-09-28 00:37:36 +02:00
Laura Hausmann
1883f426a7
[backend/federation] Add support for incoming, outgoing & local account migrations (ISH-118) 2024-09-27 03:27:34 +02:00
Laura Hausmann
4448e00333
[backend/core] Fix erroneous attempts to compute instance stats for local instance when creating follow relationship between local users 2024-09-27 03:01:30 +02:00
Laura Hausmann
1d9864a214
[backend/federation] Handle incoming ASMove activities (ISH-118) 2024-09-23 00:21:57 +02:00
Laura Hausmann
b51d3826ed
[backend/core] Fail early when user with acct already exists 2024-09-14 02:54:32 +02:00
Laura Hausmann
10650c55b8
[backend/core] Fix typo 2024-09-10 02:42:34 +02:00
Laura Hausmann
b69f92dbdc
[backend/core] Stricter local user username validation 2024-08-14 00:40:58 +02:00
Laura Hausmann
acbedd3bae
[backend/federation] Support WebFinger reverse discovery (ISH-364)
This resolves federation issues with old versions of pixelfed, as well as various AP implementations that are not widely deployed.
2024-08-13 23:58:46 +02:00
Laura Hausmann
030aef6c8d
[backend/core] Improve handling of UniqueConstraintExceptions in UserService.CreateUserAsync 2024-07-13 16:42:22 +02:00
Laura Hausmann
8f508d0c72
[backend/federation] Respect UserSettings.AutoAcceptFollowed 2024-07-11 23:19:04 +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
Laura Hausmann
df3a7bdfe5
[backend] Apply formatting rules 2024-06-29 01:06:19 +02:00
Laura Hausmann
f724a55901
[backend/core] Improve logging 2024-06-22 01:17:40 +02:00
Laura Hausmann
24bde5ad29
[backend] Use User.IsLocalUser / .IsRemoteUser instead of null-checks where applicable (ISH-370) 2024-06-17 17:25:29 +02:00
Laura Hausmann
fc7a1fe95c
[backend/federation] Make sure new follow & unfollow activities have a consistent identifier (ISH-367) 2024-06-17 17:16:27 +02:00
Laura Hausmann
3a2a6e47cf
[backend/core] Update pinned notes when the first local user follows a remote user
This allows us to fetch follower-only pinned notes immediately when they are available.
2024-05-02 21:15:43 +02:00
Laura Hausmann
fee5296cd9
[backend/core] Check for blocked instance early on user & note creation 2024-05-02 20:31:37 +02:00
Laura Hausmann
fb6e0cf9f3
[backend/masto-client] Parse emoji in display name & fields on local user update (ISH-296) 2024-04-29 00:36:35 +02:00
Laura Hausmann
e2a528c8a6
[backend/federation] Refactor AcceptAsync and FollowAsync for improved code reuse 2024-04-24 23:11:31 +02:00
Laura Hausmann
d060d076c1
[backend/core] Refactor DeleteNoteAsync and DeleteUserAsync for improved code reuse (ISH-239) 2024-04-24 21:43:45 +02:00
Laura Hausmann
ebbec76cfe
[backend/federation] Resolve split domain user hosts exactly once (ISH-201)
This is necessary, since while the current version is handling split domain instances correctly, previous versions (for users who migrated from iceshrimp-js) may have not done so.
Since account domains never change, we only have to do this once.
2024-04-19 00:55:30 +02:00
Laura Hausmann
806bfca099
[backend/core] Improve user deletes (ISH-222) 2024-04-10 20:53:50 +02:00
Laura Hausmann
66675146d9
[backend/signalr] Add authentication & authorization (ISH-244) 2024-04-03 21:46:05 +02:00
Laura Hausmann
25a50ef9eb
[backend/core] Validate actor public key host 2024-03-30 13:12:14 +01:00
Laura Hausmann
cabe5d52e7
[backend/drive] Inhibit logging of unchanged files on user/note update (ISH-240) 2024-03-29 18:25:55 +01:00