Use user url in mention if we have it.

This commit is contained in:
lain 2018-04-03 18:32:46 +02:00
parent b3b7ab5d9a
commit 806550c921
2 changed files with 11 additions and 3 deletions

View File

@ -189,7 +189,9 @@ def add_user_links({subs, text}, mentions) do
subs = subs =
subs ++ subs ++
Enum.map(mentions, fn {match, %User{ap_id: ap_id}, uuid} -> Enum.map(mentions, fn {match, %User{ap_id: ap_id, info: info}, uuid} ->
ap_id = info["source_data"]["url"] || ap_id
short_match = String.split(match, "@") |> tl() |> hd() short_match = String.split(match, "@") |> tl() |> hd()
{uuid, "<span><a href='#{ap_id}'>@<span>#{short_match}</span></a></span>"} {uuid, "<span><a href='#{ap_id}'>@<span>#{short_match}</span></a></span>"}
end) end)

View File

@ -64,7 +64,13 @@ test "turning urls into links" do
test "gives a replacement for user links" do test "gives a replacement for user links" do
text = "@gsimg According to @archaeme, that is @daggsy. Also hello @archaeme@archae.me" text = "@gsimg According to @archaeme, that is @daggsy. Also hello @archaeme@archae.me"
gsimg = insert(:user, %{nickname: "gsimg"}) gsimg = insert(:user, %{nickname: "gsimg"})
archaeme = insert(:user, %{nickname: "archaeme"})
archaeme =
insert(:user, %{
nickname: "archaeme",
info: %{"source_data" => %{"url" => "https://archeme/@archaeme"}}
})
archaeme_remote = insert(:user, %{nickname: "archaeme@archae.me"}) archaeme_remote = insert(:user, %{nickname: "archaeme@archae.me"})
mentions = Pleroma.Formatter.parse_mentions(text) mentions = Pleroma.Formatter.parse_mentions(text)
@ -76,7 +82,7 @@ test "gives a replacement for user links" do
expected_text = expected_text =
"<span><a href='#{gsimg.ap_id}'>@<span>gsimg</span></a></span> According to <span><a href='#{ "<span><a href='#{gsimg.ap_id}'>@<span>gsimg</span></a></span> According to <span><a href='#{
archaeme.ap_id "https://archeme/@archaeme"
}'>@<span>archaeme</span></a></span>, that is @daggsy. Also hello <span><a href='#{ }'>@<span>archaeme</span></a></span>, that is @daggsy. Also hello <span><a href='#{
archaeme_remote.ap_id archaeme_remote.ap_id
}'>@<span>archaeme</span></a></span>" }'>@<span>archaeme</span></a></span>"