Browse Source

Return note objects as ostatus post activities.

tags/v0.9.9
Roger Braun 7 years ago
parent
commit
9c42453e06
4 changed files with 31 additions and 2 deletions
  1. +1
    -1
      lib/pleroma/web/activity_pub/activity_pub.ex
  2. +15
    -0
      lib/pleroma/web/ostatus/ostatus_controller.ex
  3. +3
    -1
      lib/pleroma/web/router.ex
  4. +12
    -0
      test/web/ostatus/ostatus_controller_test.exs

+ 1
- 1
lib/pleroma/web/activity_pub/activity_pub.ex View File

@@ -126,7 +126,7 @@ defmodule Pleroma.Web.ActivityPub.ActivityPub do
end

def generate_object_id do
generate_id("objects")
Pleroma.Web.Router.Helpers.o_status_url(Pleroma.Web.Endpoint, :object, Ecto.UUID.generate)
end

def generate_id(type) do


+ 15
- 0
lib/pleroma/web/ostatus/ostatus_controller.ex View File

@@ -41,4 +41,19 @@ defmodule Pleroma.Web.OStatus.OStatusController do
conn
|> send_resp(200, "")
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

+ 3
- 1
lib/pleroma/web/router.ex View File

@@ -73,6 +73,8 @@ defmodule Pleroma.Web.Router do
scope "/", Pleroma.Web do
pipe_through :ostatus

get "/objects/:uuid", OStatus.OStatusController, :object

get "/users/:nickname/feed", OStatus.OStatusController, :feed
get "/users/:nickname", OStatus.OStatusController, :feed_redirect
post "/users/:nickname/salmon", OStatus.OStatusController, :salmon_incoming
@@ -96,5 +98,5 @@ end

defmodule Fallback.RedirectController do
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

+ 12
- 0
test/web/ostatus/ostatus_controller_test.exs View File

@@ -12,4 +12,16 @@ defmodule Pleroma.Web.OStatus.OStatusControllerTest do

assert response(conn, 200)
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

Loading…
Cancel
Save