projects
/
akkoma
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
in dev, allow dev FE
[akkoma]
/
lib
/
pleroma
/
web
/
mastodon_api
/
controllers
/
search_controller.ex
diff --git
a/lib/pleroma/web/mastodon_api/controllers/search_controller.ex
b/lib/pleroma/web/mastodon_api/controllers/search_controller.ex
index 0043c3a5622d1b230534dc66db170556a4500d2b..bd12069c154131af4ad0a75487c371327760520e 100644
(file)
--- a/
lib/pleroma/web/mastodon_api/controllers/search_controller.ex
+++ b/
lib/pleroma/web/mastodon_api/controllers/search_controller.ex
@@
-1,15
+1,14
@@
# Pleroma: A lightweight social networking server
# Pleroma: A lightweight social networking server
-# Copyright © 2017-202
0
Pleroma Authors <https://pleroma.social/>
+# Copyright © 2017-202
2
Pleroma Authors <https://pleroma.social/>
# SPDX-License-Identifier: AGPL-3.0-only
defmodule Pleroma.Web.MastodonAPI.SearchController do
use Pleroma.Web, :controller
# 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.Repo
alias Pleroma.User
- alias Pleroma.Web
alias Pleroma.Web.ControllerHelper
alias Pleroma.Web.ControllerHelper
+ alias Pleroma.Web.Endpoint
alias Pleroma.Web.MastodonAPI.AccountView
alias Pleroma.Web.MastodonAPI.StatusView
alias Pleroma.Web.Plugs.OAuthScopesPlug
alias Pleroma.Web.MastodonAPI.AccountView
alias Pleroma.Web.MastodonAPI.StatusView
alias Pleroma.Web.Plugs.OAuthScopesPlug
@@
-17,6
+16,8
@@
defmodule Pleroma.Web.MastodonAPI.SearchController do
require Logger
require Logger
+ @search_limit 40
+
plug(Pleroma.Web.ApiSpec.CastAndValidate)
# Note: Mastodon doesn't allow unauthenticated access (requires read:accounts / read:search)
plug(Pleroma.Web.ApiSpec.CastAndValidate)
# Note: Mastodon doesn't allow unauthenticated access (requires read:accounts / read:search)
@@
-24,7
+25,7
@@
defmodule Pleroma.Web.MastodonAPI.SearchController do
# Note: on private instances auth is required (EnsurePublicOrAuthenticatedPlug is not skipped)
# Note: on private instances auth is required (EnsurePublicOrAuthenticatedPlug is not skipped)
- plug(RateLimiter, [name: :search] when action in [:search
, :search
2, :account_search])
+ plug(RateLimiter, [name: :search] when action in [:search2, :account_search])
defdelegate open_api_operation(action), to: Pleroma.Web.ApiSpec.SearchOperation
defdelegate open_api_operation(action), to: Pleroma.Web.ApiSpec.SearchOperation
@@
-41,7
+42,6
@@
defmodule Pleroma.Web.MastodonAPI.SearchController do
end
def search2(conn, params), do: do_search(:v2, conn, params)
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)
defp do_search(version, %{assigns: %{user: user}} = conn, %{q: query} = params) do
query = String.trim(query)
@@
-77,7
+77,7
@@
defmodule Pleroma.Web.MastodonAPI.SearchController do
[
resolve: params[:resolve],
following: params[:following],
[
resolve: params[:resolve],
following: params[:following],
- limit:
params[:limit]
,
+ limit:
min(params[:limit], @search_limit)
,
offset: params[:offset],
type: params[:type],
author: get_author(params),
offset: params[:offset],
type: params[:type],
author: get_author(params),
@@
-98,7
+98,7
@@
defmodule Pleroma.Web.MastodonAPI.SearchController do
end
defp resource_search(_, "statuses", query, options) do
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,
StatusView.render("index.json",
activities: statuses,
@@
-108,7
+108,7
@@
defmodule Pleroma.Web.MastodonAPI.SearchController do
end
defp resource_search(:v2, "hashtags", query, options) do
end
defp resource_search(:v2, "hashtags", query, options) do
- tags_path =
Web.base_
url() <> "/tag/"
+ tags_path =
Endpoint.
url() <> "/tag/"
query
|> prepare_tags(options)
query
|> prepare_tags(options)
@@
-117,10
+117,6
@@
defmodule Pleroma.Web.MastodonAPI.SearchController do
end)
end
end)
end
- defp resource_search(:v1, "hashtags", query, options) do
- prepare_tags(query, options)
- end
-
defp prepare_tags(query, options) do
tags =
query
defp prepare_tags(query, options) do
tags =
query