fix fetching AP objects with application/json

This commit is contained in:
William Pitcock 2019-02-20 20:45:40 +00:00
parent aa45674be6
commit 1803d9a022
2 changed files with 9 additions and 6 deletions

View file

@ -33,6 +33,9 @@ def feed_redirect(conn, %{"nickname" => nickname}) do
"activity+json" -> "activity+json" ->
ActivityPubController.call(conn, :user) ActivityPubController.call(conn, :user)
"json" ->
ActivityPubController.call(conn, :user)
_ -> _ ->
with %User{} = user <- User.get_cached_by_nickname(nickname) do with %User{} = user <- User.get_cached_by_nickname(nickname) do
redirect(conn, external: OStatus.feed_path(user)) redirect(conn, external: OStatus.feed_path(user))
@ -94,7 +97,7 @@ def salmon_incoming(conn, _) do
end end
def object(conn, %{"uuid" => uuid}) do def object(conn, %{"uuid" => uuid}) do
if get_format(conn) == "activity+json" do if get_format(conn) in ["activity+json", "json"] do
ActivityPubController.call(conn, :object) ActivityPubController.call(conn, :object)
else else
with id <- o_status_url(conn, :object, uuid), with id <- o_status_url(conn, :object, uuid),
@ -119,7 +122,7 @@ def object(conn, %{"uuid" => uuid}) do
end end
def activity(conn, %{"uuid" => uuid}) do def activity(conn, %{"uuid" => uuid}) do
if get_format(conn) == "activity+json" do if get_format(conn) in ["activity+json", "json"] do
ActivityPubController.call(conn, :activity) ActivityPubController.call(conn, :activity)
else else
with id <- o_status_url(conn, :activity, uuid), with id <- o_status_url(conn, :activity, uuid),

View file

@ -488,11 +488,11 @@ defmodule Pleroma.Web.Router do
end end
pipeline :ap_relay do pipeline :ap_relay do
plug(:accepts, ["activity+json"]) plug(:accepts, ["activity+json", "json"])
end end
pipeline :ostatus do pipeline :ostatus do
plug(:accepts, ["html", "xml", "atom", "activity+json"]) plug(:accepts, ["html", "xml", "atom", "activity+json", "json"])
end end
pipeline :oembed do pipeline :oembed do
@ -521,7 +521,7 @@ defmodule Pleroma.Web.Router do
end end
pipeline :activitypub do pipeline :activitypub do
plug(:accepts, ["activity+json"]) plug(:accepts, ["activity+json", "json"])
plug(Pleroma.Web.Plugs.HTTPSignaturePlug) plug(Pleroma.Web.Plugs.HTTPSignaturePlug)
end end
@ -536,7 +536,7 @@ defmodule Pleroma.Web.Router do
end end
pipeline :activitypub_client do pipeline :activitypub_client do
plug(:accepts, ["activity+json"]) plug(:accepts, ["activity+json", "json"])
plug(:fetch_session) plug(:fetch_session)
plug(Pleroma.Plugs.OAuthPlug) plug(Pleroma.Plugs.OAuthPlug)
plug(Pleroma.Plugs.BasicAuthDecoderPlug) plug(Pleroma.Plugs.BasicAuthDecoderPlug)