Streamer: fix crash in MastodonAPI.StatusView
authorAlex Gleason <alex@alexgleason.me>
Fri, 13 Aug 2021 15:25:42 +0000 (10:25 -0500)
committerAlex Gleason <alex@alexgleason.me>
Fri, 13 Aug 2021 15:25:42 +0000 (10:25 -0500)
lib/pleroma/web/mastodon_api/views/status_view.ex

index da44e0a74a1918124f7e58b20e03e932a5d3963f..463f3419855f75d0c4960f09b43d9b3900c87abb 100644 (file)
@@ -65,11 +65,19 @@ defmodule Pleroma.Web.MastodonAPI.StatusView do
 
   defp get_context_id(_), do: nil
 
-  defp reblogged?(activity, user) do
-    object = Object.normalize(activity, fetch: false) || %{}
-    present?(user && user.ap_id in (object.data["announcements"] || []))
+  # Check if the user reblogged this status
+  defp reblogged?(activity, %User{ap_id: ap_id}) do
+    with %Object{data: %{"announcements" => announcements}} when is_list(announcements) <-
+           Object.normalize(activity, fetch: false) do
+      ap_id in announcements
+    else
+      _ -> false
+    end
   end
 
+  # False if the user is logged out
+  defp reblogged?(_activity, _user), do: false
+
   def render("index.json", opts) do
     reading_user = opts[:for]