diff options
-rw-r--r-- | lib/pleroma/web/controllers/frontend/pleroma_controller.ex | 29 |
1 files changed, 28 insertions, 1 deletions
diff --git a/lib/pleroma/web/controllers/frontend/pleroma_controller.ex b/lib/pleroma/web/controllers/frontend/pleroma_controller.ex index bd2e73dd4..b1286be54 100644 --- a/lib/pleroma/web/controllers/frontend/pleroma_controller.ex +++ b/lib/pleroma/web/controllers/frontend/pleroma_controller.ex @@ -10,6 +10,7 @@ defmodule Pleroma.Web.Frontend.PleromaController do alias Pleroma.User alias Pleroma.Web.Metadata + alias Pleroma.Web.Preload def index_with_meta(conn, %{"maybe_nickname_or_id" => maybe_nickname_or_id} = params) do case User.get_cached_by_nickname_or_id(maybe_nickname_or_id) do @@ -39,10 +40,36 @@ defmodule Pleroma.Web.Frontend.PleromaController do "" end - response = String.replace(index_content, "<!--server-generated-meta-->", tags) + preloads = preload_data(conn, params) + + response = String.replace(index_content, "<!--server-generated-meta-->", tags <> preloads) + + html(conn, response) + end + + def index_with_preload(conn, params) do + {:ok, path} = index_file_path() + {:ok, index_content} = File.read(path) + preloads = preload_data(conn, params) + + response = String.replace(index_content, "<!--server-generated-meta-->", preloads) html(conn, response) end defdelegate registration_page(conn, params), to: __MODULE__, as: :index + + 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 |