Commit graph

82 commits

Author SHA1 Message Date
Ariadne Conill 40a61532ca activity: when restricting deactivated users, precalculate the user list
the PostgreSQL query planner is easily confused due to the complexity of
certain queries we make.  while we plan to simplify these queries through
unification of activities and objects, we are not yet there.  it has been
discovered that using a precalculated list of deactivated users encourages
the query planner to prefer simpler indices instead of the
activity_visibility index.

accordingly, drop the subquery and precalc the user list instead.
2019-09-06 23:14:29 +00:00
lain cc6c0b4ba6 Merge remote-tracking branch 'origin/develop' into sixohsix/pleroma-post_expiration 2019-08-24 15:48:33 +02:00
rinpatch a4a3e3becd Hide muted theads from home/public timelines unless with_muted is set 2019-08-15 17:37:30 +03:00
rinpatch c1b6952d2a Mastodon API: Preloading and normalization optimizations
- Try to normalize the activity instead of object wherever possible
- Put the `user` key on non-home timelines as well so bookmarks and
thread mutes are preloaded there as well
- Skip trying to get the user when rendering mentions if the id ==
as:Public or user's follower collection
- Preload the object when getting replied to activities and do not crash
if it's not present

This almost solves the problem of Pleroma hammering the db with a lot
of queries when rendering timelines, the things left are
1. When rendering mentions and the user is not in cache, save it for
later and request all uncached users in one go
2. Somehow get rid of needing to get the latest follow activity to
detect the value of `requested` in a relationship. (create a database
view for user relationship and cache it maybe?)
2019-08-13 20:34:34 +03:00
Mike Verdone 666514194a Add activity expirations table
Add a table to store activity expirations. An activity can have zero or
one expirations. The expiration has a scheduled_at field which stores
the time at which the activity should expire and be deleted.
2019-07-24 13:14:52 +02:00
Eugenij 4198c3ac39 Extend Pleroma.Pagination to support offset-based pagination, use async/await to execute status and account search in parallel 2019-07-11 13:55:31 +00:00
Egor Kislitsyn 93397fce3d Contain search for unauthenticated users 2019-06-05 16:37:43 +07:00
Aaron Tinio eb02edcad9 Add virtual :thread_muted? field
that may be set when fetching activities
2019-05-21 00:35:46 +08:00
Sergey Suprunenko e2b3a27204 Add Reports to Admin API 2019-05-16 19:09:18 +00:00
Aaron Tinio 793f1834d2 Use named binding to conditionally join object 2019-05-16 06:25:14 +08:00
Egor Kislitsyn 5e2b491276 Merge remote-tracking branch 'pleroma/develop' into feature/disable-account 2019-05-14 18:15:56 +07:00
Alexander Strizhakov bfeb33e951 Merge develop
Merge conflict in lib/pleroma/activity.ex
2019-05-08 14:34:36 +00:00
rinpatch 4c5125dedc Remove bookmarks assoc and add a fake bookmark assoc instead 2019-05-07 19:33:22 +00:00
rinpatch be067ec2ab Use with_preloaded_bookmark in create_by_object_ap_id_with_object 2019-05-07 19:33:22 +00:00
rinpatch 3a7c14645e - Actually use preloaded bookmarks in views
- Preload bookmarks in bookmark timeline
- Rework bookmark preload tests
2019-05-07 19:33:22 +00:00
rinpatch f841eb7cdb Preload bookmarks wherever the object is preloaded 2019-05-07 19:33:22 +00:00
Egor Kislitsyn 1557b99beb Merge remote-tracking branch 'pleroma/develop' into feature/disable-account 2019-05-07 16:51:11 +07:00
Alexander Strizhakov ce6ca0fefe Merge branch 'develop' of https://git.pleroma.social/pleroma/pleroma into feature/845-improve-status-deletion 2019-05-06 16:45:22 +00:00
Egor Kislitsyn e8c2f9a73a Merge remote-tracking branch 'pleroma/develop' into feature/disable-account 2019-04-22 13:08:30 +07:00
rinpatch 9238dccac1 Add a guard to fetching reply activity 2019-04-18 21:40:40 +03:00
rinpatch 4c289e924e Fix delete-by_ap_id to expect not only embeded objects 2019-04-17 16:35:01 +03:00
rinpatch 8e4d950f31 Remove updating reply count for embeded objects 2019-04-17 15:54:09 +03:00
rinpatch 627e5a0a49 Merge branch 'develop' into feature/database-compaction 2019-04-17 12:22:32 +03:00
rinpatch 5d73dca064 Remove inReplyToStatusId 2019-04-15 11:50:36 +03:00
Egor Kislitsyn db4badc6aa move user disable into deactivation 2019-04-11 17:22:42 +07:00
Egor Kislitsyn 0f2f7d2cec Merge remote-tracking branch 'pleroma/develop' into feature/disable-account 2019-04-11 15:51:52 +07:00
eugenijm b3870df51f Handle scheduled_at on status creation. 2019-04-06 23:55:58 +03:00
eugenijm 568e348588 Increment replies_count on replies (MastoAPI) 2019-03-26 15:27:04 +03:00
William Pitcock 26b0c802c3 fix up missing announcements with preloads 2019-03-25 07:38:09 +00:00
William Pitcock 4aa699271c activity: use left join instead of inner join when fetching activities that may or may not have a child object 2019-03-23 03:17:50 +00:00
William Pitcock f9d5c13b21 activity: add get_by_ap_id_with_object() 2019-03-23 03:05:13 +00:00
William Pitcock a6973a668e formatting 2019-03-23 00:28:16 +00:00
William Pitcock 59518cbcd8 activity: fix credo nitpick 2019-03-23 00:26:12 +00:00
William Pitcock 092cedede5 activity: add with_preloaded_object() convenience 2019-03-23 00:09:56 +00:00
William Pitcock 62bccddde0 object: add support for preloading objects when walking an activity graph in normal form 2019-03-22 23:51:12 +00:00
rinpatch b92a16aa00 Merge branch 'ecto-3-migration' into 'develop'
Ecto 3.0.7 (ecto_sql 3.0.5) migration

See merge request pleroma/pleroma!957
2019-03-21 16:24:57 +00:00
rinpatch 9a7b817c9a Ecto 3.0.5 migration
kms
2019-03-20 15:59:54 +03:00
eugenijm 1588688a11 Added support for exclude_types, limit, and min_id in Mastodon
notifications.

Unify Mastodon-compatible pagination logic.
2019-03-18 11:27:27 +03:00
Haelwenn (lanodan) Monnier a3a9cec483
[Credo] fix Credo.Check.Readability.AliasOrder 2019-03-13 04:26:54 +01:00
eugenijm 6038c8a753 Broadcast deleted activity id on deletion to conform to MastoAPI streamig spec 2019-03-11 09:02:03 +03:00
Egor Kislitsyn eb84de0143 allow users to disable their own account 2019-03-04 19:55:11 +07:00
Egor bff9eb5ef7 Reports 2019-02-20 16:51:25 +00:00
Haelwenn (lanodan) Monnier 6a6a5b3251
de-group alias/es 2019-02-09 16:31:17 +01:00
kaniini 4df71cd88b Merge branch 'classic-flakeids' into 'develop'
Flake Ids for Users and Activities

Closes #450

See merge request pleroma/pleroma!645
2019-01-25 04:59:06 +00:00
lain 2de208817c Merge branch 'develop' into rename/pleroma_activity_consistency 2019-01-23 13:05:58 +01:00
href 28d77e373c
Flake Ids for Users and Activities 2019-01-23 11:26:27 +01:00
rinpatch e460820fcf Add get_by_id to activity.ex 2019-01-22 10:55:10 +03:00
Haelwenn (lanodan) Monnier 7390192c03
Activity: mix format (2 empty lines) 2019-01-21 08:00:41 +01:00
Haelwenn (lanodan) Monnier 98c8184c1f
Activity: get_create_activity_by_object_ap_id/1 → get_create_by_object_ap_id/1 2019-01-21 08:00:41 +01:00
Haelwenn (lanodan) Monnier 2fdbd4d137
Activity: create_activity_by_object_id_query/1 → create_by_object_ap_id/1 when is_list 2019-01-21 08:00:40 +01:00