Merge branch '1794-hashtags-construction-from-uri-fix' into 'develop'

[#1794] Fixes URI query handling for hashtags extraction in search

Closes #1794

See merge request pleroma/pleroma!2645
This commit is contained in:
feld 2020-06-12 12:31:27 +00:00
commit 11aa02bb10
2 changed files with 30 additions and 0 deletions

View file

@ -152,6 +152,7 @@ defmodule Pleroma.Web.MastodonAPI.SearchController do
defp preprocess_uri_query(query) do defp preprocess_uri_query(query) do
if query =~ ~r/https?:\/\// do if query =~ ~r/https?:\/\// do
query query
|> String.trim_trailing("/")
|> URI.parse() |> URI.parse()
|> Map.get(:path) |> Map.get(:path)
|> String.split("/") |> String.split("/")

View file

@ -120,6 +120,35 @@ defmodule Pleroma.Web.MastodonAPI.SearchControllerTest do
assert results["hashtags"] == [ assert results["hashtags"] == [
%{"name" => "shpuld", "url" => "#{Web.base_url()}/tag/shpuld"} %{"name" => "shpuld", "url" => "#{Web.base_url()}/tag/shpuld"}
] ]
results =
conn
|> get(
"/api/v2/search?#{
URI.encode_query(%{
q:
"https://www.washingtonpost.com/sports/2020/06/10/" <>
"nascar-ban-display-confederate-flag-all-events-properties/"
})
}"
)
|> json_response_and_validate_schema(200)
assert results["hashtags"] == [
%{"name" => "nascar", "url" => "#{Web.base_url()}/tag/nascar"},
%{"name" => "ban", "url" => "#{Web.base_url()}/tag/ban"},
%{"name" => "display", "url" => "#{Web.base_url()}/tag/display"},
%{"name" => "confederate", "url" => "#{Web.base_url()}/tag/confederate"},
%{"name" => "flag", "url" => "#{Web.base_url()}/tag/flag"},
%{"name" => "all", "url" => "#{Web.base_url()}/tag/all"},
%{"name" => "events", "url" => "#{Web.base_url()}/tag/events"},
%{"name" => "properties", "url" => "#{Web.base_url()}/tag/properties"},
%{
"name" => "NascarBanDisplayConfederateFlagAllEventsProperties",
"url" =>
"#{Web.base_url()}/tag/NascarBanDisplayConfederateFlagAllEventsProperties"
}
]
end end
test "excludes a blocked users from search results", %{conn: conn} do test "excludes a blocked users from search results", %{conn: conn} do