commit: 1f18ab36b541e62234ca63648dfce1b4a591f4aa
parent fff7571e0d4713e4ae44e43405cb501f243db414
Author: Haelwenn <contact+git.pleroma.social@hacktivis.me>
Date: Wed, 20 Jul 2022 16:57:05 +0000
Merge branch 'resolve/notice-compatibility-routes-nginx' into 'develop'
Document way to do notice compatibility routes with Nginx reverse-proxy, fixes #2900
Closes #2900
See merge request pleroma/pleroma!3701
Diffstat:
5 files changed, 13 insertions(+), 66 deletions(-)
diff --git a/installation/pleroma.nginx b/installation/pleroma.nginx
@@ -81,6 +81,19 @@ server {
proxy_pass http://phoenix;
}
+ # Uncomment this if you want notice compatibility routes for frontends like Soapbox.
+ # location ~ ^/@[^/]+/([^/]+)$ {
+ # proxy_pass http://phoenix/notice/$1;
+ # }
+ #
+ # location ~ ^/@[^/]+/posts/([^/]+)$ {
+ # proxy_pass http://phoenix/notice/$1;
+ # }
+ #
+ # location ~ ^/[^/]+/status/([^/]+)$ {
+ # proxy_pass http://phoenix/notice/$1;
+ # }
+
location ~ ^/(media|proxy) {
proxy_cache pleroma_media_cache;
slice 1m;
diff --git a/lib/pleroma/web/router.ex b/lib/pleroma/web/router.ex
@@ -678,11 +678,6 @@ defmodule Pleroma.Web.Router do
get("/activities/:uuid", OStatus.OStatusController, :activity)
get("/notice/:id", OStatus.OStatusController, :notice)
- # Notice compatibility routes for other frontends
- get("/@:nickname/:id", OStatus.OStatusController, :notice)
- get("/@:nickname/posts/:id", OStatus.OStatusController, :notice)
- get("/:nickname/status/:id", OStatus.OStatusController, :notice)
-
# Mastodon compatibility routes
get("/users/:nickname/statuses/:id", OStatus.OStatusController, :object)
get("/users/:nickname/statuses/:id/activity", OStatus.OStatusController, :activity)
diff --git a/lib/pleroma/web/static_fe/static_fe_controller.ex b/lib/pleroma/web/static_fe/static_fe_controller.ex
@@ -167,15 +167,6 @@ defmodule Pleroma.Web.StaticFE.StaticFEController do
defp assign_id(%{path_info: ["notice", notice_id]} = conn, _opts),
do: assign(conn, :notice_id, notice_id)
- defp assign_id(%{path_info: ["@" <> _nickname, notice_id]} = conn, _opts),
- do: assign(conn, :notice_id, notice_id)
-
- defp assign_id(%{path_info: ["@" <> _nickname, "posts", notice_id]} = conn, _opts),
- do: assign(conn, :notice_id, notice_id)
-
- defp assign_id(%{path_info: [_nickname, "status", notice_id]} = conn, _opts),
- do: assign(conn, :notice_id, notice_id)
-
defp assign_id(%{path_info: ["users", user_id]} = conn, _opts),
do: assign(conn, :username_or_id, user_id)
diff --git a/test/pleroma/web/o_status/o_status_controller_test.exs b/test/pleroma/web/o_status/o_status_controller_test.exs
@@ -343,54 +343,4 @@ defmodule Pleroma.Web.OStatus.OStatusControllerTest do
|> response(200)
end
end
-
- describe "notice compatibility routes" do
- test "Soapbox FE", %{conn: conn} do
- user = insert(:user)
- note_activity = insert(:note_activity, user: user)
-
- resp =
- conn
- |> put_req_header("accept", "text/html")
- |> get("/@#{user.nickname}/posts/#{note_activity.id}")
- |> response(200)
-
- expected =
- "<meta content=\"#{Endpoint.url()}/notice/#{note_activity.id}\" property=\"og:url\">"
-
- assert resp =~ expected
- end
-
- test "Mastodon", %{conn: conn} do
- user = insert(:user)
- note_activity = insert(:note_activity, user: user)
-
- resp =
- conn
- |> put_req_header("accept", "text/html")
- |> get("/@#{user.nickname}/#{note_activity.id}")
- |> response(200)
-
- expected =
- "<meta content=\"#{Endpoint.url()}/notice/#{note_activity.id}\" property=\"og:url\">"
-
- assert resp =~ expected
- end
-
- test "Twitter", %{conn: conn} do
- user = insert(:user)
- note_activity = insert(:note_activity, user: user)
-
- resp =
- conn
- |> put_req_header("accept", "text/html")
- |> get("/#{user.nickname}/status/#{note_activity.id}")
- |> response(200)
-
- expected =
- "<meta content=\"#{Endpoint.url()}/notice/#{note_activity.id}\" property=\"og:url\">"
-
- assert resp =~ expected
- end
- end
end
diff --git a/test/pleroma/web/plugs/frontend_static_plug_test.exs b/test/pleroma/web/plugs/frontend_static_plug_test.exs
@@ -86,8 +86,6 @@ defmodule Pleroma.Web.Plugs.FrontendStaticPlugTest do
"objects",
"activities",
"notice",
- "@:nickname",
- ":nickname",
"users",
"tags",
"mailer",