Fix tests.
[akkoma] / lib / pleroma / web / mastodon_api / views / status_view.ex
index bc5ae5da7dd80212d827096ceacd1f5a6ff20ed2..3012344121240b3737272c3336b159a09b956985 100644 (file)
@@ -82,19 +82,6 @@ defmodule Pleroma.Web.MastodonAPI.StatusView do
     }
   end
 
-  def get_reply_to(activity, %{replied_to_activities: replied_to_activities}) do
-    id = activity.data["object"]["inReplyTo"]
-    replied_to_activities[activity.data["object"]["inReplyTo"]]
-  end
-
-  def get_reply_to(%{data: %{"object" => object}}, _) do
-    if object["inReplyTo"] && object["inReplyTo"] != "" do
-      Activity.get_create_activity_by_object_ap_id(object["inReplyTo"])
-    else
-      nil
-    end
-  end
-
   def render("status.json", %{activity: %{data: %{"object" => object}} = activity} = opts) do
     user = User.get_cached_by_ap_id(activity.data["actor"])
 
@@ -125,7 +112,11 @@ defmodule Pleroma.Web.MastodonAPI.StatusView do
       (activity.data["object"]["emoji"] || [])
       |> Enum.map(fn {name, url} ->
         name = HtmlSanitizeEx.strip_tags(name)
-        url = HtmlSanitizeEx.strip_tags(url)
+
+        url =
+          HtmlSanitizeEx.strip_tags(url)
+          |> MediaProxy.url()
+
         %{shortcode: name, url: url, static_url: url}
       end)
 
@@ -160,19 +151,6 @@ defmodule Pleroma.Web.MastodonAPI.StatusView do
     }
   end
 
-  def get_visibility(object) do
-    public = "https://www.w3.org/ns/activitystreams#Public"
-    to = object["to"] || []
-    cc = object["cc"] || []
-
-    cond do
-      public in to -> "public"
-      public in cc -> "unlisted"
-      Enum.any?(to, &String.contains?(&1, "/followers")) -> "private"
-      true -> "direct"
-    end
-  end
-
   def render("attachment.json", %{attachment: attachment}) do
     [%{"mediaType" => media_type, "href" => href} | _] = attachment["url"]
 
@@ -195,4 +173,31 @@ defmodule Pleroma.Web.MastodonAPI.StatusView do
       type: type
     }
   end
+
+  def get_reply_to(activity, %{replied_to_activities: replied_to_activities}) do
+    _id = activity.data["object"]["inReplyTo"]
+    replied_to_activities[activity.data["object"]["inReplyTo"]]
+  end
+
+  def get_reply_to(%{data: %{"object" => object}}, _) do
+    if object["inReplyTo"] && object["inReplyTo"] != "" do
+      Activity.get_create_activity_by_object_ap_id(object["inReplyTo"])
+    else
+      nil
+    end
+  end
+
+  def get_visibility(object) do
+    public = "https://www.w3.org/ns/activitystreams#Public"
+    to = object["to"] || []
+    cc = object["cc"] || []
+
+    cond do
+      public in to -> "public"
+      public in cc -> "unlisted"
+         # this should use the sql for the object's activity
+      Enum.any?(to, &String.contains?(&1, "/followers")) -> "private"
+      true -> "direct"
+    end
+  end
 end