in dev, allow dev FE
[akkoma] / lib / pleroma / web / static_fe / static_fe_controller.ex
index 6f73b575e2a751245256d634d54b0f08287f46c6..56ee4e41e9f8c6771c1121cdd41d7cf890fad5f7 100644 (file)
@@ -25,7 +25,7 @@ defmodule Pleroma.Web.StaticFE.StaticFEController do
          true <- Visibility.is_public?(activity.object),
          {_, true} <- {:visible?, Visibility.visible_for_user?(activity, _reading_user = nil)},
          %User{} = user <- User.get_by_ap_id(activity.object.data["actor"]) do
-      meta = Metadata.build_tags(%{activity_id: notice_id, object: activity.object, user: user})
+      meta = Metadata.build_tags(%{url: activity.data["id"], object: activity.object, user: user})
 
       timeline =
         activity.object.data["context"]
@@ -180,15 +180,7 @@ defmodule Pleroma.Web.StaticFE.StaticFEController do
         nil
       end
 
-    reply_to_user =
-      if data["inReplyTo"] do
-        activity
-        |> Activity.get_in_reply_to_activity()
-        |> Map.get(:actor)
-        |> User.get_cached_by_ap_id()
-      else
-        nil
-      end
+    reply_to_user = in_reply_to_user(activity)
 
     total_votes =
       if data["oneOf"] do
@@ -217,6 +209,21 @@ defmodule Pleroma.Web.StaticFE.StaticFEController do
     }
   end
 
+  defp in_reply_to_user(%Activity{object: %Object{data: %{"inReplyTo" => inReplyTo}}} = activity)
+       when is_binary(inReplyTo) do
+    in_reply_to_activity = Activity.get_in_reply_to_activity(activity)
+
+    if in_reply_to_activity do
+      in_reply_to_activity
+      |> Map.get(:actor)
+      |> User.get_cached_by_ap_id()
+    else
+      nil
+    end
+  end
+
+  defp in_reply_to_user(_), do: nil
+
   defp assign_id(%{path_info: ["notice", notice_id]} = conn, _opts),
     do: assign(conn, :notice_id, notice_id)