Merge pull request 'Redirect /users/:nickname.rss to /users/:nickname/feed.rss instead of .atom' (#1022) from mkljczk/akkoma:akkoma-feed-redirect into develop
Reviewed-on: https://akkoma.dev/AkkomaGang/akkoma/pulls/1022 Reviewed-by: Oneric <oneric@noreply.akkoma>
This commit is contained in:
commit
078c73ee2c
2 changed files with 20 additions and 2 deletions
|
|
@ -28,9 +28,12 @@ def feed_redirect(%{assigns: %{format: format}} = conn, _params)
|
|||
ActivityPubController.call(conn, :user)
|
||||
end
|
||||
|
||||
def feed_redirect(conn, %{"nickname" => nickname}) do
|
||||
def feed_redirect(%{assigns: assigns} = conn, %{"nickname" => nickname}) do
|
||||
format = Map.get(assigns, :format, "atom")
|
||||
format = if format in ["atom", "rss"], do: format, else: "atom"
|
||||
|
||||
with {_, %User{} = user} <- {:fetch_user, User.get_cached_by_nickname(nickname)} do
|
||||
redirect(conn, external: "#{url(~p"/users/#{user.nickname}/feed")}.atom")
|
||||
redirect(conn, external: "#{url(~p"/users/#{user.nickname}/feed")}.#{format}")
|
||||
end
|
||||
end
|
||||
|
||||
|
|
|
|||
|
|
@ -236,6 +236,21 @@ test "with non-html / non-json format, it redirects to user feed in atom format"
|
|||
"#{Pleroma.Web.Endpoint.url()}/users/#{user.nickname}/feed.atom"
|
||||
end
|
||||
|
||||
test "redirects to rss feed when explicitly requested", %{conn: conn} do
|
||||
note_activity = insert(:note_activity)
|
||||
user = User.get_cached_by_ap_id(note_activity.data["actor"])
|
||||
|
||||
conn =
|
||||
conn
|
||||
|> put_req_header("accept", "application/xml")
|
||||
|> get("/users/#{user.nickname}.rss")
|
||||
|
||||
assert conn.status == 302
|
||||
|
||||
assert redirected_to(conn) ==
|
||||
"#{Pleroma.Web.Endpoint.url()}/users/#{user.nickname}/feed.rss"
|
||||
end
|
||||
|
||||
test "with non-html / non-json format, it returns error when user is not found", %{conn: conn} do
|
||||
response =
|
||||
conn
|
||||
|
|
|
|||
Loading…
Reference in a new issue