# Pleroma: A lightweight social networking server
-# Copyright © 2017-2021 Pleroma Authors <https://pleroma.social/>
+# Copyright © 2017-2022 Pleroma Authors <https://pleroma.social/>
# SPDX-License-Identifier: AGPL-3.0-only
defmodule Pleroma.Web.MastodonAPI.SearchController do
use Pleroma.Web, :controller
- alias Pleroma.Activity
alias Pleroma.Repo
alias Pleroma.User
alias Pleroma.Web.ControllerHelper
# Note: on private instances auth is required (EnsurePublicOrAuthenticatedPlug is not skipped)
- plug(RateLimiter, [name: :search] when action in [:search, :search2, :account_search])
+ plug(RateLimiter, [name: :search] when action in [:search2, :account_search])
defdelegate open_api_operation(action), to: Pleroma.Web.ApiSpec.SearchOperation
end
def search2(conn, params), do: do_search(:v2, conn, params)
- def search(conn, params), do: do_search(:v1, conn, params)
defp do_search(version, %{assigns: %{user: user}} = conn, %{q: query} = params) do
query = String.trim(query)
end
defp resource_search(_, "statuses", query, options) do
- statuses = with_fallback(fn -> Activity.search(options[:for_user], query, options) end)
+ statuses = with_fallback(fn -> Pleroma.Search.search(query, options) end)
StatusView.render("index.json",
activities: statuses,
end)
end
- defp resource_search(:v1, "hashtags", query, options) do
- prepare_tags(query, options)
- end
-
defp prepare_tags(query, options) do
tags =
query