+
+ 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)
+
+ defp assign_id(%{path_info: ["@" <> _nickname, notice_id]} = conn, _opts),
+ do: assign(conn, :notice_id, notice_id)
+
+ defp assign_id(%{path_info: ["@" <> _nickname, "posts", notice_id]} = conn, _opts),
+ do: assign(conn, :notice_id, notice_id)
+
+ defp assign_id(%{path_info: [_nickname, "status", notice_id]} = conn, _opts),
+ do: assign(conn, :notice_id, notice_id)
+
+ defp assign_id(%{path_info: ["users", user_id]} = conn, _opts),
+ do:
+ conn
+ |> assign(:username_or_id, user_id)
+ |> assign(:tab, "posts")
+
+ defp assign_id(%{path_info: ["users", user_id, tab]} = conn, _opts),
+ do:
+ conn
+ |> assign(:username_or_id, user_id)
+ |> assign(:tab, tab)
+
+ defp assign_id(%{path_info: ["objects", object_id]} = conn, _opts),
+ do: assign(conn, :object_id, object_id)
+
+ defp assign_id(%{path_info: ["activities", activity_id]} = conn, _opts),
+ do: assign(conn, :activity_id, activity_id)
+
+ defp assign_id(conn, _opts), do: conn