Merge branch 'feature/jobs' into 'develop'
[akkoma] / lib / pleroma / web / mastodon_api / views / status_view.ex
index d1b11d4f10288c9db64e6aa6e7c91df76104f994..a49b381c952ed4c8a5e99c91a9c72f00f8f9f0bc 100644 (file)
@@ -9,10 +9,11 @@ defmodule Pleroma.Web.MastodonAPI.StatusView do
   alias Pleroma.HTML
   alias Pleroma.Repo
   alias Pleroma.User
+  alias Pleroma.Web.CommonAPI
   alias Pleroma.Web.CommonAPI.Utils
-  alias Pleroma.Web.MediaProxy
   alias Pleroma.Web.MastodonAPI.AccountView
   alias Pleroma.Web.MastodonAPI.StatusView
+  alias Pleroma.Web.MediaProxy
 
   # TODO: Add cached version.
   defp get_replied_to_activities(activities) do
@@ -160,12 +161,12 @@ defmodule Pleroma.Web.MastodonAPI.StatusView do
       reblogged: present?(repeated),
       favourited: present?(favorited),
       bookmarked: present?(bookmarked),
-      muted: false,
+      muted: CommonAPI.thread_muted?(user, activity),
       pinned: pinned?(activity, user),
       sensitive: sensitive,
       spoiler_text: object["summary"] || "",
       visibility: get_visibility(object),
-      media_attachments: attachments |> Enum.take(4),
+      media_attachments: attachments,
       mentions: mentions,
       tags: build_tags(tags),
       application: %{
@@ -182,18 +183,24 @@ defmodule Pleroma.Web.MastodonAPI.StatusView do
   end
 
   def render("card.json", %{rich_media: rich_media, page_url: page_url}) do
+    page_url_data = URI.parse(page_url)
+
     page_url_data =
       if rich_media[:url] != nil do
-        URI.merge(URI.parse(page_url), URI.parse(rich_media[:url]))
+        URI.merge(page_url_data, URI.parse(rich_media[:url]))
       else
-        page_url
+        page_url_data
       end
 
     page_url = page_url_data |> to_string
 
     image_url =
-      URI.merge(page_url_data, URI.parse(rich_media[:image]))
-      |> to_string
+      if rich_media[:image] != nil do
+        URI.merge(page_url_data, URI.parse(rich_media[:image]))
+        |> to_string
+      else
+        nil
+      end
 
     site_name = rich_media[:site_name] || page_url_data.host