Merge branch 'feature/relay-tests' into 'develop'
authorkaniini <nenolod@gmail.com>
Thu, 1 Nov 2018 09:10:51 +0000 (09:10 +0000)
committerkaniini <nenolod@gmail.com>
Thu, 1 Nov 2018 09:10:51 +0000 (09:10 +0000)
relay tests

See merge request pleroma/pleroma!411

lib/pleroma/web/activity_pub/transmogrifier.ex
lib/pleroma/web/mastodon_api/views/status_view.ex

index cbc800ad65c94b52e6b65b4064f97bf5e7524bfb..56918342cd438b59bae703bdf35e1a1c8faf760b 100644 (file)
@@ -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)
 
index 80e80c8f598ef6c38c316cc56a0576eb1df5b6b4..1efd994709fb6a2765f3588d590d5e47340621dc 100644 (file)
@@ -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"]