forked from AkkomaGang/akkoma
Compare commits
1 commit
develop
...
feed-redir
Author | SHA1 | Date | |
---|---|---|---|
7c904c451f |
1 changed files with 11 additions and 9 deletions
|
@ -29,20 +29,15 @@ def feed_redirect(%{assigns: %{format: format}} = conn, _params)
|
|||
end
|
||||
|
||||
def feed_redirect(conn, %{"nickname" => nickname}) do
|
||||
format = feed_format(conn)
|
||||
|
||||
with {_, %User{} = user} <- {:fetch_user, User.get_cached_by_nickname(nickname)} do
|
||||
redirect(conn, external: "#{Routes.user_feed_url(conn, :feed, user.nickname)}.atom")
|
||||
redirect(conn, external: "#{Routes.user_feed_url(conn, :feed, user.nickname)}.#{format}")
|
||||
end
|
||||
end
|
||||
|
||||
def feed(conn, %{"nickname" => nickname} = params) do
|
||||
format = get_format(conn)
|
||||
|
||||
format =
|
||||
if format in ["atom", "rss"] do
|
||||
format
|
||||
else
|
||||
"atom"
|
||||
end
|
||||
format = feed_format(conn)
|
||||
|
||||
with {_, %User{local: true} = user} <- {:fetch_user, User.get_cached_by_nickname(nickname)},
|
||||
{_, :visible} <- {:visibility, User.visible_for(user, _reading_user = nil)} do
|
||||
|
@ -78,4 +73,11 @@ def errors(conn, {:visibility, _}), do: errors(conn, {:error, :not_found})
|
|||
def errors(conn, _) do
|
||||
render_error(conn, :internal_server_error, "Something went wrong")
|
||||
end
|
||||
|
||||
defp feed_format(conn) do
|
||||
case get_format(conn) do
|
||||
"rss" -> "rss"
|
||||
_ -> "atom"
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Reference in a new issue