Merge branch 'fix/credo-issues' into 'develop'
[akkoma] / lib / pleroma / web / mastodon_api / views / status_view.ex
index c8fde93bae6a66b078036a2bcacbb7b0a8407a26..f51a2ebb0e5ccd4d6039ce962886f1dfcf39da3b 100644 (file)
@@ -10,9 +10,9 @@ defmodule Pleroma.Web.MastodonAPI.StatusView do
   alias Pleroma.Repo
   alias Pleroma.User
   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
@@ -182,16 +182,23 @@ defmodule Pleroma.Web.MastodonAPI.StatusView do
   end
 
   def render("card.json", %{rich_media: rich_media, page_url: page_url}) do
-    page_url = rich_media[:url] || page_url
     page_url_data = URI.parse(page_url)
 
+    page_url_data =
+      if rich_media[:url] != nil do
+        URI.merge(page_url_data, URI.parse(rich_media[:url]))
+      else
+        page_url_data
+      end
+
+    page_url = page_url_data |> to_string
+
     image_url =
-      with %URI{host: nil} <- page_url_data do
-        rich_media[:image]
+      if rich_media[:image] != nil do
+        URI.merge(page_url_data, URI.parse(rich_media[:image]))
+        |> to_string
       else
-        _ ->
-          URI.merge(page_url_data, URI.parse(rich_media[:image]))
-          |> to_string
+        nil
       end
 
     site_name = rich_media[:site_name] || page_url_data.host