diff options
author | Haelwenn <git.pleroma.social@hacktivis.me> | 2018-11-01 09:05:16 +0000 |
---|---|---|
committer | Haelwenn <git.pleroma.social@hacktivis.me> | 2018-11-01 09:05:16 +0000 |
commit | 40676d768307d43de075f6ced5231120bf89cbd1 (patch) | |
tree | 9a2c5a41a1edb24413e0cacd605f367fdab035aa | |
parent | 27a06bd440eeb6b8683a42f73a2ffd1a23a25b63 (diff) | |
parent | b2da5262eacf65b1f5fcb6c4f9e31561df1884dd (diff) | |
download | pleroma-40676d768307d43de075f6ced5231120bf89cbd1.tar.gz |
Merge branch 'bugfix/prismo.news_article_url' into 'develop'
Bugfix/prismo.news article url
Closes #352
See merge request pleroma/pleroma!410
-rw-r--r-- | lib/pleroma/web/activity_pub/transmogrifier.ex | 22 | ||||
-rw-r--r-- | lib/pleroma/web/mastodon_api/views/status_view.ex | 2 |
2 files changed, 23 insertions, 1 deletions
diff --git a/lib/pleroma/web/activity_pub/transmogrifier.ex b/lib/pleroma/web/activity_pub/transmogrifier.ex index cbc800ad6..56918342c 100644 --- a/lib/pleroma/web/activity_pub/transmogrifier.ex +++ b/lib/pleroma/web/activity_pub/transmogrifier.ex @@ -57,6 +57,7 @@ defmodule Pleroma.Web.ActivityPub.Transmogrifier do object |> fix_actor |> fix_attachments + |> fix_url |> fix_context |> fix_in_reply_to |> fix_emoji @@ -171,6 +172,27 @@ defmodule Pleroma.Web.ActivityPub.Transmogrifier do def fix_attachments(object), do: object + def fix_url(%{"url" => url} = object) when is_map(url) do + object + |> Map.put("url", url["href"]) + end + + def fix_url(%{"url" => url} = object) when is_list(url) do + first_element = Enum.at(url, 0) + + url_string = + cond do + is_bitstring(first_element) -> first_element + is_map(first_element) -> first_element["href"] || "" + true -> "" + end + + object + |> Map.put("url", url_string) + end + + def fix_url(object), do: object + def fix_emoji(%{"tag" => tags} = object) when is_list(tags) do emoji = tags |> Enum.filter(fn data -> data["type"] == "Emoji" and data["icon"] end) diff --git a/lib/pleroma/web/mastodon_api/views/status_view.ex b/lib/pleroma/web/mastodon_api/views/status_view.ex index 80e80c8f5..1efd99470 100644 --- a/lib/pleroma/web/mastodon_api/views/status_view.ex +++ b/lib/pleroma/web/mastodon_api/views/status_view.ex @@ -240,7 +240,7 @@ defmodule Pleroma.Web.MastodonAPI.StatusView do summary = object["name"] content = - if !!summary and summary != "" do + if !!summary and summary != "" and is_bitstring(object["url"]) do "<p><a href=\"#{object["url"]}\">#{summary}</a></p>#{object["content"]}" else object["content"] |