aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorHaelwenn <git.pleroma.social@hacktivis.me>2018-11-01 09:05:16 +0000
committerHaelwenn <git.pleroma.social@hacktivis.me>2018-11-01 09:05:16 +0000
commit40676d768307d43de075f6ced5231120bf89cbd1 (patch)
tree9a2c5a41a1edb24413e0cacd605f367fdab035aa /lib
parent27a06bd440eeb6b8683a42f73a2ffd1a23a25b63 (diff)
parentb2da5262eacf65b1f5fcb6c4f9e31561df1884dd (diff)
downloadpleroma-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
Diffstat (limited to 'lib')
-rw-r--r--lib/pleroma/web/activity_pub/transmogrifier.ex22
-rw-r--r--lib/pleroma/web/mastodon_api/views/status_view.ex2
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"]