alias Pleroma.{User, Activity, Object}
alias Pleroma.Web.OStatus.{FeedRepresenter, ActivityRepresenter}
alias Pleroma.Repo
- alias Pleroma.Web.{OStatus, Federator}
+ alias Pleroma.Web.{OStatus, Federator, Metadata}
alias Pleroma.Web.XML
alias Pleroma.Web.ActivityPub.ObjectView
alias Pleroma.Web.ActivityPub.ActivityPubController
%User{} = user <- User.get_cached_by_ap_id(activity.data["actor"]) do
case format = get_format(conn) do
"html" ->
- conn
- |> put_resp_content_type("text/html")
- |> send_file(200, Application.app_dir(:pleroma, "priv/static/index.html"))
+ serve_static_with_meta(conn, activity, user)
_ ->
represent_activity(conn, format, activity, user)
end
end
+ defp serve_static_with_meta(conn, activity, user) do
+ {:ok, index_content } = File.read(Application.app_dir(:pleroma, "priv/static/index.html"))
+ tags = Metadata.build_tags(activity, user, request_url(conn))
+ response = String.replace(index_content, "<!--server-generated-meta-->", tags)
+ conn
+ |> put_resp_content_type("text/html")
+ |> send_resp(200, response)
+ end
+
defp represent_activity(
conn,
"activity+json",
%Activity{data: %{"type" => "Create"}} = activity,
- user
+ _user
) do
object = Object.normalize(activity.data["object"])
|> json(ObjectView.render("object.json", %{object: object}))
end
- defp represent_activity(conn, "activity+json", _, _) do
+ defp represent_activity(_conn, "activity+json", _, _) do
{:error, :not_found}
end