Activity.Search: fallback on status resolution on DB Timeout
Backport of: https://git.pleroma.social/pleroma/pleroma/-/merge_requests/3507
This commit is contained in:
parent
e117551169
commit
27e1e4c742
2 changed files with 18 additions and 13 deletions
|
@ -22,6 +22,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
|
||||||
- TwitterAPI: Make `change_password` and `change_email` require params on body instead of query
|
- TwitterAPI: Make `change_password` and `change_email` require params on body instead of query
|
||||||
- Subscription(Bell) Notifications: Don't create from Pipeline Ingested replies
|
- Subscription(Bell) Notifications: Don't create from Pipeline Ingested replies
|
||||||
- AdminAPI: Fix rendering reports containing a `nil` object
|
- AdminAPI: Fix rendering reports containing a `nil` object
|
||||||
|
- Mastodon API: Activity Search fallbacks on status fetching after a DB Timeout/Error
|
||||||
|
|
||||||
## 2.4.0 - 2021-08-08
|
## 2.4.0 - 2021-08-08
|
||||||
|
|
||||||
|
|
|
@ -26,19 +26,23 @@ defmodule Pleroma.Activity.Search do
|
||||||
:plain
|
:plain
|
||||||
end
|
end
|
||||||
|
|
||||||
Activity
|
try do
|
||||||
|> Activity.with_preloaded_object()
|
Activity
|
||||||
|> Activity.restrict_deactivated_users()
|
|> Activity.with_preloaded_object()
|
||||||
|> restrict_public()
|
|> Activity.restrict_deactivated_users()
|
||||||
|> query_with(index_type, search_query, search_function)
|
|> restrict_public()
|
||||||
|> maybe_restrict_local(user)
|
|> query_with(index_type, search_query, search_function)
|
||||||
|> maybe_restrict_author(author)
|
|> maybe_restrict_local(user)
|
||||||
|> maybe_restrict_blocked(user)
|
|> maybe_restrict_author(author)
|
||||||
|> Pagination.fetch_paginated(
|
|> maybe_restrict_blocked(user)
|
||||||
%{"offset" => offset, "limit" => limit, "skip_order" => index_type == :rum},
|
|> Pagination.fetch_paginated(
|
||||||
:offset
|
%{"offset" => offset, "limit" => limit, "skip_order" => index_type == :rum},
|
||||||
)
|
:offset
|
||||||
|> maybe_fetch(user, search_query)
|
)
|
||||||
|
|> maybe_fetch(user, search_query)
|
||||||
|
rescue
|
||||||
|
_ -> maybe_fetch([], user, search_query)
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
def maybe_restrict_author(query, %User{} = author) do
|
def maybe_restrict_author(query, %User{} = author) do
|
||||||
|
|
Loading…
Reference in a new issue