Browse Source

Merge branch 'handle-search-timeout' into 'develop'

Handle search timeouts for /api/v1/search and /api/v2/search

Closes #994

See merge request pleroma/pleroma!1369
tags/v1.1.4
rinpatch 5 years ago
parent
commit
079266d406
2 changed files with 15 additions and 4 deletions
  1. +1
    -0
      CHANGELOG.md
  2. +14
    -4
      lib/pleroma/web/mastodon_api/search_controller.ex

+ 1
- 0
CHANGELOG.md View File

@@ -12,6 +12,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).

### Fixed
- Not being able to pin unlisted posts
- Mastodon API: Handling of search timeouts (`/api/v1/search` and `/api/v2/search`)

### Changed
- Configuration: Filter.AnonymizeFilename added ability to retain file extension with custom text


+ 14
- 4
lib/pleroma/web/mastodon_api/search_controller.ex View File

@@ -17,8 +17,8 @@ defmodule Pleroma.Web.MastodonAPI.SearchController do
plug(Pleroma.Plugs.RateLimiter, :search when action in [:search, :search2, :account_search])

def search2(%{assigns: %{user: user}} = conn, %{"q" => query} = params) do
accounts = User.search(query, search_options(params, user))
statuses = Activity.search(user, query)
accounts = with_fallback(fn -> User.search(query, search_options(params, user)) end, [])
statuses = with_fallback(fn -> Activity.search(user, query) end, [])
tags_path = Web.base_url() <> "/tag/"

tags =
@@ -40,8 +40,8 @@ defmodule Pleroma.Web.MastodonAPI.SearchController do
end

def search(%{assigns: %{user: user}} = conn, %{"q" => query} = params) do
accounts = User.search(query, search_options(params, user))
statuses = Activity.search(user, query)
accounts = with_fallback(fn -> User.search(query, search_options(params, user)) end, [])
statuses = with_fallback(fn -> Activity.search(user, query) end, [])

tags =
query
@@ -76,4 +76,14 @@ defmodule Pleroma.Web.MastodonAPI.SearchController do
for_user: user
]
end

defp with_fallback(f, fallback) do
try do
f.()
rescue
error ->
Logger.error("#{__MODULE__} search error: #{inspect(error)}")
fallback
end
end
end

Loading…
Cancel
Save