Commit graph

49 commits

Author SHA1 Message Date
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
kopper
8998cd2874
[backend] Also search in alt text 2024-10-09 18:31:16 +02:00
Kopper
024de937d0
[backend/federation] Backfill replies 2024-09-15 01:47:41 +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
df3a7bdfe5
[backend] Apply formatting rules 2024-06-29 01:06:19 +02:00
Laura Hausmann
c4763e9c67
[backend/database] Fix Note.IsQuote not handling cw-only renotes correctly 2024-06-19 14:05:28 +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
8b36f1aecf
[backend/masto-client] Paginate likes & bookmarks based on their identifier (instead of the note identifier) 2024-06-15 16:57:06 +02:00
Laura Hausmann
2ffededb4d
[backend/database] Add explicit parentheses to Note.IsVisibleFor
This is semantically identical, but should be easier to read.
2024-05-23 15:17:44 +02:00
Laura Hausmann
d54cb5c391
[backend/database] Add renoteUri and replyUri properties to the note table 2024-04-30 00:15:58 +02:00
Laura Hausmann
db49473128
[backend/database] Add index on note.visibility 2024-04-24 02:01:06 +02:00
Laura Hausmann
246a70caf9
[backend/api] Add visibility to NoteCreateRequest, use enum conversions instead of strings to represent note visibility 2024-04-22 17:56:32 +02:00
Laura Hausmann
79c3a9c891
[backend/database] Replace complex Index/PrimaryKey/ForeignKey references with their nameof() equivalents 2024-04-19 20:19:51 +02:00
Laura Hausmann
9e11398938
[backend/database] Refactor ForeignKey attributes to use nameof() where applicable (ISH-24) 2024-04-19 20:11:26 +02:00
Laura Hausmann
d10dbec5b7
[backend/database] Refactor Index attributes to use nameof() where applicable (ISH-24) 2024-04-19 20:11:26 +02:00
Laura Hausmann
8a48207957
[backend/database] Enforce local-only for authenticated visibility checks as well 2024-04-17 16:49:16 +02:00
Laura Hausmann
4ff1b5f4c4
[backend] Implement streaming hub for timelines & notifications (ISH-244) 2024-04-08 20:45:30 +02:00
Laura Hausmann
22a4de63f3
[backend/masto-client] Add & populate MastoReplyUserId column (ISH-247) 2024-04-07 21:07:04 +02:00
Laura Hausmann
d5b7fa5ae7
[backend/api] Correctly render replies/renotes/quotes (ISH-205) 2024-03-18 16:36:04 +01:00
Laura Hausmann
a408fa247a
[backend] Code cleanup 2024-03-17 13:36:08 +01:00
Laura Hausmann
e42812d2b0
[backend/core] Denormalize like counts (ISH-110) 2024-03-04 02:42:35 +01:00
Laura Hausmann
7655e216ec
[backend/database] Remove length limit on note.cw column (ISH-84) 2024-03-04 01:11:29 +01:00
Laura Hausmann
6a10d408f9
[backend/masto-client] Use the F# SearchQuery parser for FTS queries (ISH-11) 2024-03-04 00:12:22 +01:00
Laura Hausmann
b979605470
[backend/database] Remove HTML cache tables 2024-03-01 21:44:06 +01:00
Laura Hausmann
665154b1eb
[backend/federation] Resolve user profile mentions (ISH-33) 2024-02-25 02:07:20 +01:00
Laura Hausmann
7a7b3f81b3
[backend/masto-api] Detect quotes on note create 2024-02-22 01:58:54 +01:00
Laura Hausmann
d4e1d92771
[backend] Code cleanup: switch to BSD braces style, tweak code style 2024-02-17 02:31:00 +01:00
Laura Hausmann
9496d81abe
[backend/database] Add entity methods for getting the public url/uri for users & notes (ISH-47) 2024-02-16 03:28:16 +01:00
Laura Hausmann
e53e61e3ed
[backend/database] Rename note bookmarks table 2024-02-14 19:11:11 +01:00
Laura Hausmann
fde159dbec
[backend/database] Add note likes table 2024-02-14 19:09:26 +01:00
Laura Hausmann
32b0e1f3c7
[backend] Code cleanup 2024-02-13 17:17:02 +01:00
Laura Hausmann
8745f72ea7
[backend/masto-client] Implement status context endpoint & map database functions (ISH-43) 2024-02-12 02:29:03 +01:00
Laura Hausmann
67d1d776c8
[backend/federation] Basic mentions handling (ISH-38)
This implementation adds handling of incoming mentions, including rewriting non-canonical mentions of split domain users into their canonical form when inserting notes into the database.
2024-02-11 18:50:28 +01:00
Laura Hausmann
d566875f54
[backend/database] Add database maintenance service with functions to recompute note & user counters (ISH-21) 2024-02-09 14:58:00 +01:00
Laura Hausmann
ce47377001
[backend/database] Make sure all projectable entity properties aren't mapped 2024-02-08 01:06:23 +01:00
Laura Hausmann
b22d0b98a3
[backend/masto-client] Implement search endpoint (ISH-7) 2024-02-07 23:35:59 +01:00
Laura Hausmann
29581d4fb2
[backend] Refactor postgres jsonb columns 2024-02-05 20:09:18 +01:00
Laura Hausmann
d31c20d6ae
[backend] Merge duplicate postgres enums 2024-02-04 23:40:10 +01:00
Laura Hausmann
458d136a4e
[backend] Improve note visibility projectables 2024-02-04 02:06:15 +01:00
Laura Hausmann
285c2ba531
[backend/masto-client] Precompute reply/renote visibility in database query 2024-02-04 01:06:24 +01:00
Laura Hausmann
ee449ec751
[backend/masto-client] Implement link pagination response headers 2024-02-03 21:55:26 +01:00
Laura Hausmann
4dd1997f45
[backend/masto-client] Implement visibility/blocking/muting/list filters for timelines 2024-02-03 06:42:29 +01:00
Laura Hausmann
af7a776337
[backend] Refactor inverse properties; add projectable computed properties to the User class 2024-02-03 02:13:50 +01:00
Laura Hausmann
bf3e72da9b
Basic note create 2024-01-25 03:16:29 +01:00
Laura Hausmann
dcfd417ecf
Rename indicies 2024-01-07 19:43:41 +01:00
Laura Hausmann
99e2e18c3d
Rename tables and properties 2024-01-07 19:15:57 +01:00
Laura Hausmann
c0ef5e0f1e
Correctly scaffold database enums 2024-01-06 18:05:53 +01:00
Laura Hausmann
ea6612de25
Initial commit 2023-12-24 00:57:07 +01:00