Commit graph

129 commits

Author SHA1 Message Date
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
Haelwenn (lanodan) Monnier f8ab1b7427
Activity: get_all_by_object_ap_id/1 → get_all_create_by_object_ap_id/1 2019-01-21 08:00:38 +01:00
Haelwenn (lanodan) Monnier 4ad5a0abb9
Activity: all_by_object_ap_id_q/1 → create_by_object_ap_id/1 2019-01-21 07:51:01 +01:00
Haelwenn (lanodan) Monnier 75e4c8f0b2
Activity: all_non_create_by_object_ap_id_q → by_object_ap_id 2019-01-21 07:50:57 +01:00
Haelwenn (lanodan) Monnier b82c6dc536
Activity: all_by_object_ap_id/1 → get_all_by_object_ap_id/1 2019-01-21 07:49:59 +01:00
William Pitcock 980b5288ed update copyright years to 2019 2018-12-31 15:41:47 +00:00
Maksim Pechnikov 523848d1fd Salmon# fixed publish an activity to remote accounts 2018-12-29 12:48:54 +03:00
William Pitcock 2791ce9a1f add license boilerplate to pleroma core 2018-12-23 20:56:42 +00:00
href ec0e613eca
Pleroma.Activity.mastodon_notification_type/1 2018-12-14 13:22:10 +01:00
William Pitcock 5d753e1c7c activity: add helpers for updating activities in the database 2018-12-04 04:52:09 +00:00
William Pitcock 5ea64f4bf9 activity: minor cleanups to normalization functions to align them with the object normalizers 2018-12-04 04:52:09 +00:00
William Pitcock 663007b42c activity: clean up direct use of object data 2018-12-04 04:52:09 +00:00
William Pitcock f3f736afc4 activity: add helper to fetch an activity's parent 2018-10-25 02:47:55 +00:00
William Pitcock 29b5e30c46 activity: drop recipients_to/recipients_cc fields 2018-08-29 18:41:02 +00:00
William Pitcock 81673b8136 activity: add recipients_to and recipients_cc fields 2018-08-29 08:42:33 +00:00
William Pitcock b036a19c21 activity: add normalize() to find a complete activity given either URI or partial structure 2018-06-27 13:07:12 +00:00
lain 0f70e83e8c Better error handling in TwitterApiController. 2018-06-03 19:11:22 +02:00
lain 4afbef39f4 Format the code. 2018-03-30 15:01:53 +02:00
lain 37e5014d3e Reduce OP fetching queries. 2018-03-27 18:18:24 +02:00
Lain Iwakura 4a13b84887 Add recipients field to activities.
Also do some very basic checks for AP message insertion.
2017-12-12 18:07:14 +01:00
Lain Iwakura ef2322bdb7 Delete notifications on activity deletion. 2017-12-08 18:17:30 +01:00
Roger Braun f1d27a5fbb Add actor column to activities. 2017-11-09 10:41:19 +01:00
Roger Braun b35ff8f755 Use index in basic activity query. 2017-10-23 18:36:53 +02:00
Roger Braun 9f417fd5e9 Speed up deletion and related queries. 2017-10-23 18:30:09 +02:00
Roger Braun 61adf676d5 Add basic mastodon notification support. 2017-09-11 18:53:19 +02:00
Roger Braun 552cfdbe11 Fix deletion not deleting relevant actions. 2017-08-16 16:29:25 +02:00
Roger Braun f226f46a09 Add basic incoming deletions. 2017-08-01 17:05:07 +02:00
Roger Braun 9cf38d6796 Use more efficient queries. 2017-06-20 16:18:42 +02:00
Roger Braun 14a9dd468b Use more efficient query. 2017-06-20 16:02:17 +02:00
Roger Braun 56bacc90d1 Fix specs, add local marker to actitivies. 2017-05-02 10:43:35 +02:00
Roger Braun 9d7c3190cc Get create activity from created object id.
This is useful for Ostatus federation because ostatus doesn't have
different ids for objects and activities...
2017-04-30 11:16:41 +02:00
Roger Braun f97c8e4379 Add utility functions for objects and activities. 2017-04-13 15:49:42 +02:00
Roger Braun 8de523c8ae Basic AP objects. 2017-03-21 09:21:52 +01:00