[#1892] Excluded bot actors (applications, services) from search results.
This commit is contained in:
parent
b9e6ad571a
commit
3d2989278c
|
@ -52,6 +52,7 @@ defp search_query(query_string, for_user, following) do
|
|||
|> base_query(following)
|
||||
|> filter_blocked_user(for_user)
|
||||
|> filter_invisible_users()
|
||||
|> filter_bots()
|
||||
|> filter_blocked_domains(for_user)
|
||||
|> fts_search(query_string)
|
||||
|> trigram_rank(query_string)
|
||||
|
@ -109,6 +110,10 @@ defp filter_invisible_users(query) do
|
|||
from(q in query, where: q.invisible == false)
|
||||
end
|
||||
|
||||
defp filter_bots(query) do
|
||||
from(q in query, where: q.actor_type not in ["Application", "Service"])
|
||||
end
|
||||
|
||||
defp filter_blocked_user(query, %User{} = blocker) do
|
||||
query
|
||||
|> join(:left, [u], b in Pleroma.UserRelationship,
|
||||
|
|
|
@ -17,7 +17,7 @@ defmodule Pleroma.UserSearchTest do
|
|||
describe "User.search" do
|
||||
setup do: clear_config([:instance, :limit_to_local_content])
|
||||
|
||||
test "excluded invisible users from results" do
|
||||
test "excludes invisible users from results" do
|
||||
user = insert(:user, %{nickname: "john t1000"})
|
||||
insert(:user, %{invisible: true, nickname: "john t800"})
|
||||
|
||||
|
@ -25,6 +25,13 @@ test "excluded invisible users from results" do
|
|||
assert found_user.id == user.id
|
||||
end
|
||||
|
||||
test "excludes bots from results" do
|
||||
insert(:user, actor_type: "Service", nickname: "bot1")
|
||||
insert(:user, actor_type: "Application", nickname: "bot2")
|
||||
|
||||
assert [] = User.search("bot")
|
||||
end
|
||||
|
||||
test "accepts limit parameter" do
|
||||
Enum.each(0..4, &insert(:user, %{nickname: "john#{&1}"}))
|
||||
assert length(User.search("john", limit: 3)) == 3
|
||||
|
|
Loading…
Reference in a new issue