Page MenuHomePhorge

No OneTemporary

Size
3 KB
Referenced Files
None
Subscribers
None
diff --git a/lib/pleroma/web/fallback/redirect_controller.ex b/lib/pleroma/web/fallback/redirect_controller.ex
index 8de54bffb..dd2e9270b 100644
--- a/lib/pleroma/web/fallback/redirect_controller.ex
+++ b/lib/pleroma/web/fallback/redirect_controller.ex
@@ -1,145 +1,145 @@
# Pleroma: A lightweight social networking server
# Copyright © 2017-2022 Pleroma Authors <https://pleroma.social/>
# SPDX-License-Identifier: AGPL-3.0-only
defmodule Pleroma.Web.Fallback.RedirectController do
use Pleroma.Web, :controller
require Logger
alias Pleroma.User
alias Pleroma.Web.Metadata
alias Pleroma.Web.Preload
def api_not_implemented(conn, _params) do
conn
|> put_status(404)
|> json(%{error: "Not implemented"})
end
def redirector(conn, _params, code \\ 200) do
conn =
conn
|> put_resp_content_type("text/html")
if has_index?() do
conn
|> send_file(code, index_file_path())
else
conn
|> render_missing_frontend_notice()
end
end
defp has_index? do
File.exists?(index_file_path())
end
defp render_missing_frontend_notice(conn, opts \\ %{}) do
conn
|> put_layout(:fallback_index)
|> put_view(Pleroma.Web.Fallback.RedirectView)
|> render(
"missing_frontend.html",
- server_generated_meta: opts[:head_tags] || "",
+ server_generated_meta: opts[:head_tags] || "<!--server-generated-meta-->",
title: opts[:title] || Pleroma.Config.get([:instance, :name])
)
end
def redirector_with_meta(conn, %{"maybe_nickname_or_id" => maybe_nickname_or_id} = params) do
with %User{} = user <- User.get_cached_by_nickname_or_id(maybe_nickname_or_id) do
redirector_with_meta(conn, %{user: user})
else
nil ->
redirector(conn, params)
end
end
def redirector_with_meta(conn, params) do
tags = build_tags(conn, params)
preloads = preload_data(conn, params)
if has_index?() do
{:ok, index_content} = File.read(index_file_path())
title = "<title>#{Pleroma.Config.get([:instance, :name])}</title>"
response =
index_content
|> String.replace("<!--server-generated-meta-->", tags <> preloads <> title)
conn
|> put_resp_content_type("text/html")
|> send_resp(200, response)
else
conn
|> render_missing_frontend_notice(head_tags: tags <> preloads)
end
end
def redirector_with_preload(conn, %{"path" => ["pleroma", "admin"]}) do
redirect(conn, to: "/pleroma/admin/")
end
def redirector_with_preload(conn, params) do
preloads = preload_data(conn, params)
if has_index?() do
{:ok, index_content} = File.read(index_file_path())
title = "<title>#{Pleroma.Config.get([:instance, :name])}</title>"
response =
index_content
|> String.replace("<!--server-generated-meta-->", preloads <> title)
conn
|> put_resp_content_type("text/html")
|> send_resp(200, response)
else
conn
|> render_missing_frontend_notice(head_tags: preloads)
end
end
def registration_page(conn, params) do
redirector(conn, params)
end
def empty(conn, _params) do
conn
|> put_status(204)
|> text("")
end
defp index_file_path do
Pleroma.Web.Plugs.InstanceStatic.file_path("index.html")
end
defp build_tags(conn, params) do
try do
Metadata.build_tags(params)
rescue
e ->
Logger.error(
"Metadata rendering for #{conn.request_path} failed.\n" <>
Exception.format(:error, e, __STACKTRACE__)
)
""
end
end
defp preload_data(conn, params) do
try do
Preload.build_tags(conn, params)
rescue
e ->
Logger.error(
"Preloading for #{conn.request_path} failed.\n" <>
Exception.format(:error, e, __STACKTRACE__)
)
""
end
end
end

File Metadata

Mime Type
text/x-diff
Expires
Fri, Aug 28, 9:54 PM (23 h, 26 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
1736671
Default Alt Text
(3 KB)

Event Timeline