B ForceMentionsInContent: Fix test, refactor.

This commit is contained in:
Lain Soykaf 2023-06-11 16:45:31 +04:00
parent 55dd8ef1c7
commit 6611c6ce4e
2 changed files with 6 additions and 4 deletions

View File

@ -95,11 +95,13 @@ def filter(
|> Enum.reject(&is_nil/1) |> Enum.reject(&is_nil/1)
|> sort_replied_user(replied_to_user) |> sort_replied_user(replied_to_user)
explicitly_mentioned_uris = extract_mention_uris_from_content(content) explicitly_mentioned_uris =
extract_mention_uris_from_content(content)
|> MapSet.new()
added_mentions = added_mentions =
Enum.reduce(mention_users, "", fn %User{ap_id: api_id, uri: uri} = user, acc -> Enum.reduce(mention_users, "", fn %User{ap_id: ap_id, uri: uri} = user, acc ->
unless Enum.any?([api_id, uri], fn u -> u in explicitly_mentioned_uris end) do if MapSet.disjoint?(MapSet.new([ap_id, uri]), explicitly_mentioned_uris) do
acc <> Formatter.mention_from_user(user, %{mentions_format: :compact}) <> " " acc <> Formatter.mention_from_user(user, %{mentions_format: :compact}) <> " "
else else
acc acc

View File

@ -282,7 +282,7 @@ test "don't add duplicate mentions for mastodon or misskey posts" do
{:ok, post} = CommonAPI.post(rogerick, %{status: "eugh"}) {:ok, post} = CommonAPI.post(rogerick, %{status: "eugh"})
inline_mentions = [ inline_mentions = [
"<span class=\"h-card\"><a class=\"u-url mention\" data-user=\"#{rogerick.id}\" href=\"#{rogerick.uri}\" rel=\"ugc\">@<span>rogerick</span></a></span>", "<span class=\"h-card\"><a class=\"u-url mention\" data-user=\"#{rogerick.id}\" href=\"#{rogerick.ap_id}\" rel=\"ugc\">@<span>rogerick</span></a></span>",
"<span class=\"h-card\"><a class=\"u-url mention\" data-user=\"#{greg.id}\" href=\"#{greg.uri}\" rel=\"ugc\">@<span>greg</span></a></span>" "<span class=\"h-card\"><a class=\"u-url mention\" data-user=\"#{greg.id}\" href=\"#{greg.uri}\" rel=\"ugc\">@<span>greg</span></a></span>"
] ]