ActivityPub: Send out Accept after Follow.
[akkoma] / lib / pleroma / web / router.ex
index 09104fc86c366c1caa61d05645ec95a054ccc928..6455ff108aaeb1b08ff6424d81d5e1832d3917d0 100644 (file)
@@ -28,6 +28,13 @@ defmodule Pleroma.Web.Router do
     plug Pleroma.Plugs.AuthenticationPlug, %{fetcher: &Router.user_fetcher/1, optional: true}
   end
 
+  pipeline :pleroma_html do
+    plug :accepts, ["html"]
+    plug :fetch_session
+    plug Pleroma.Plugs.OAuthPlug
+    plug Pleroma.Plugs.AuthenticationPlug, %{fetcher: &Router.user_fetcher/1, optional: true}
+  end
+
   pipeline :well_known do
     plug :accepts, ["xml", "xrd+xml"]
   end
@@ -51,6 +58,13 @@ defmodule Pleroma.Web.Router do
     get "/emoji", UtilController, :emoji
   end
 
+  scope "/", Pleroma.Web.TwitterAPI do
+    pipe_through :pleroma_html
+    get "/ostatus_subscribe", UtilController, :remote_follow
+    post "/ostatus_subscribe", UtilController, :do_remote_follow
+    post "/main/ostatus", UtilController, :remote_subscribe
+  end
+
   scope "/api/pleroma", Pleroma.Web.TwitterAPI do
     pipe_through :authenticated_api
     post "/follow_import", UtilController, :follow_import
@@ -205,7 +219,7 @@ defmodule Pleroma.Web.Router do
   end
 
   pipeline :ostatus do
-    plug :accepts, ["xml", "atom", "html"]
+    plug :accepts, ["xml", "atom", "html", "activity+json"]
   end
 
   scope "/", Pleroma.Web do
@@ -223,6 +237,16 @@ defmodule Pleroma.Web.Router do
     post "/push/subscriptions/:id", Websub.WebsubController, :websub_incoming
   end
 
+  pipeline :activitypub do
+    plug :accepts, ["activity+json"]
+    plug Pleroma.Web.Plugs.HTTPSignaturePlug
+  end
+
+  scope "/", Pleroma.Web.ActivityPub do
+    pipe_through :activitypub
+    post "/users/:nickname/inbox", ActivityPubController, :inbox
+  end
+
   scope "/.well-known", Pleroma.Web do
     pipe_through :well_known