From 39863236ebba227d8e742680b739d18d2d211fb0 Mon Sep 17 00:00:00 2001
From: "Haelwenn (lanodan) Monnier" <contact@hacktivis.me>
Date: Mon, 21 Jan 2019 00:53:41 +0100
Subject: [PATCH] Web.MastodonAPI.MastodonAPIController: generic
 get_status_card/1 function for MastoAPI 2.6.x

Mastodon API 2.6.x added a card key to the Status object so the Card can be shown in the timeline without an extra request at each status.
---
 .../web/mastodon_api/mastodon_api_controller.ex | 17 +++++++++--------
 1 file changed, 9 insertions(+), 8 deletions(-)

diff --git a/lib/pleroma/web/mastodon_api/mastodon_api_controller.ex b/lib/pleroma/web/mastodon_api/mastodon_api_controller.ex
index 86607e7af..9d3fa532d 100644
--- a/lib/pleroma/web/mastodon_api/mastodon_api_controller.ex
+++ b/lib/pleroma/web/mastodon_api/mastodon_api_controller.ex
@@ -1329,22 +1329,23 @@ defmodule Pleroma.Web.MastodonAPI.MastodonAPIController do
     |> Enum.at(0)
   end
 
-  def status_card(conn, %{"id" => status_id}) do
+  def get_status_card(status_id) do
     with %Activity{} = activity <- Repo.get(Activity, status_id),
          true <- ActivityPub.is_public?(activity),
          page_url <- status_first_external_url(activity.data["object"]["content"]),
          {:ok, rich_media} <- Pleroma.Web.RichMedia.Parser.parse(page_url) do
-      card =
-        rich_media
-        |> Map.take([:image, :title, :url, :description])
-        |> Map.put(:type, "link")
-
-      json(conn, card)
+      rich_media
+      |> Map.take([:image, :title, :url, :description])
+      |> Map.put(:type, "link")
     else
-      _ -> json(conn, %{})
+      _ -> %{}
     end
   end
 
+  def status_card(conn, %{"id" => status_id}) do
+    json(conn, get_status_card(status_id))
+  end
+
   def try_render(conn, target, params)
       when is_binary(target) do
     res = render(conn, target, params)
-- 
2.49.0