forked from AkkomaGang/akkoma
Return note objects as ostatus post activities.
This commit is contained in:
parent
018a1a390f
commit
9c42453e06
4 changed files with 31 additions and 2 deletions
|
@ -126,7 +126,7 @@ def generate_context_id do
|
||||||
end
|
end
|
||||||
|
|
||||||
def generate_object_id do
|
def generate_object_id do
|
||||||
generate_id("objects")
|
Pleroma.Web.Router.Helpers.o_status_url(Pleroma.Web.Endpoint, :object, Ecto.UUID.generate)
|
||||||
end
|
end
|
||||||
|
|
||||||
def generate_id(type) do
|
def generate_id(type) do
|
||||||
|
|
|
@ -41,4 +41,19 @@ def salmon_incoming(conn, params) do
|
||||||
conn
|
conn
|
||||||
|> send_resp(200, "")
|
|> send_resp(200, "")
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def object(conn, %{"uuid" => uuid}) do
|
||||||
|
IO.inspect(uuid)
|
||||||
|
id = o_status_url(conn, :object, uuid)
|
||||||
|
activity = Activity.get_create_activity_by_object_ap_id(id)
|
||||||
|
user = User.get_cached_by_ap_id(activity.data["actor"])
|
||||||
|
|
||||||
|
response = FeedRepresenter.to_simple_form(user, [activity], [user])
|
||||||
|
|> :xmerl.export_simple(:xmerl_xml)
|
||||||
|
|> to_string
|
||||||
|
|
||||||
|
conn
|
||||||
|
|> put_resp_content_type("application/atom+xml")
|
||||||
|
|> send_resp(200, response)
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -73,6 +73,8 @@ def user_fetcher(username) do
|
||||||
scope "/", Pleroma.Web do
|
scope "/", Pleroma.Web do
|
||||||
pipe_through :ostatus
|
pipe_through :ostatus
|
||||||
|
|
||||||
|
get "/objects/:uuid", OStatus.OStatusController, :object
|
||||||
|
|
||||||
get "/users/:nickname/feed", OStatus.OStatusController, :feed
|
get "/users/:nickname/feed", OStatus.OStatusController, :feed
|
||||||
get "/users/:nickname", OStatus.OStatusController, :feed_redirect
|
get "/users/:nickname", OStatus.OStatusController, :feed_redirect
|
||||||
post "/users/:nickname/salmon", OStatus.OStatusController, :salmon_incoming
|
post "/users/:nickname/salmon", OStatus.OStatusController, :salmon_incoming
|
||||||
|
@ -96,5 +98,5 @@ def user_fetcher(username) do
|
||||||
|
|
||||||
defmodule Fallback.RedirectController do
|
defmodule Fallback.RedirectController do
|
||||||
use Pleroma.Web, :controller
|
use Pleroma.Web, :controller
|
||||||
def redirector(conn, _params), do: send_file(conn, 200, "priv/static/index.html")
|
def redirector(conn, _params), do: (if Mix.env != :test, do: send_file(conn, 200, "priv/static/index.html"))
|
||||||
end
|
end
|
||||||
|
|
|
@ -12,4 +12,16 @@ test "gets a feed", %{conn: conn} do
|
||||||
|
|
||||||
assert response(conn, 200)
|
assert response(conn, 200)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
test "gets an object", %{conn: conn} do
|
||||||
|
note_activity = insert(:note_activity)
|
||||||
|
[_, uuid] = hd Regex.scan(~r/.+\/([\w-]+)$/, note_activity.data["object"]["id"])
|
||||||
|
url = "/objects/#{uuid}"
|
||||||
|
|> IO.inspect
|
||||||
|
|
||||||
|
conn = conn
|
||||||
|
|> get(url)
|
||||||
|
|
||||||
|
assert response(conn, 200)
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in a new issue