diff options
author | HJ <30-hj@users.noreply.git.pleroma.social> | 2023-11-19 08:52:37 +0000 |
---|---|---|
committer | HJ <30-hj@users.noreply.git.pleroma.social> | 2023-11-19 08:52:37 +0000 |
commit | 4ebfc011fc5cb24dab9aa187372579ebbadb6cd2 (patch) | |
tree | 85e4af4ce66a8bf3f09bb032a0222494d9e1bfba /lib | |
parent | ca1b18ba2df38970582f64e0fed9147a5bfff43e (diff) | |
parent | 2a58596aef655bb5e347cbb12290700f35ad64e5 (diff) | |
download | pleroma-4ebfc011fc5cb24dab9aa187372579ebbadb6cd2.tar.gz pleroma-4ebfc011fc5cb24dab9aa187372579ebbadb6cd2.zip |
Merge branch 'favicon' into 'develop'
Make favicon configurable, embed favicon and manifest in server-generated meta
See merge request pleroma/pleroma!3963
Diffstat (limited to 'lib')
-rw-r--r-- | lib/pleroma/web/fallback/redirect_controller.ex | 27 |
1 files changed, 21 insertions, 6 deletions
diff --git a/lib/pleroma/web/fallback/redirect_controller.ex b/lib/pleroma/web/fallback/redirect_controller.ex index 1a86f7a53..4a0885fab 100644 --- a/lib/pleroma/web/fallback/redirect_controller.ex +++ b/lib/pleroma/web/fallback/redirect_controller.ex @@ -17,10 +17,28 @@ defmodule Pleroma.Web.Fallback.RedirectController do |> json(%{error: "Not implemented"}) end + def add_generated_metadata(page_content, extra \\ "") do + title = "<title>#{Pleroma.Config.get([:instance, :name])}</title>" + favicon = "<link rel='icon' href='#{Pleroma.Config.get([:instance, :favicon])}'>" + manifest = "<link rel='manifest' href='/manifest.json'>" + + page_content + |> String.replace( + "<!--server-generated-meta-->", + title <> favicon <> manifest <> extra + ) + end + def redirector(conn, _params, code \\ 200) do + {:ok, index_content} = File.read(index_file_path()) + + response = + index_content + |> add_generated_metadata() + conn |> put_resp_content_type("text/html") - |> send_file(code, index_file_path()) + |> send_resp(code, response) end def redirector_with_meta(conn, %{"maybe_nickname_or_id" => maybe_nickname_or_id} = params) do @@ -34,14 +52,12 @@ defmodule Pleroma.Web.Fallback.RedirectController do def redirector_with_meta(conn, params) do {:ok, index_content} = File.read(index_file_path()) - tags = build_tags(conn, params) preloads = preload_data(conn, params) - title = "<title>#{Pleroma.Config.get([:instance, :name])}</title>" response = index_content - |> String.replace("<!--server-generated-meta-->", tags <> preloads <> title) + |> add_generated_metadata(tags <> preloads) conn |> put_resp_content_type("text/html") @@ -55,11 +71,10 @@ defmodule Pleroma.Web.Fallback.RedirectController do def redirector_with_preload(conn, params) do {:ok, index_content} = File.read(index_file_path()) preloads = preload_data(conn, params) - title = "<title>#{Pleroma.Config.get([:instance, :name])}</title>" response = index_content - |> String.replace("<!--server-generated-meta-->", preloads <> title) + |> add_generated_metadata(preloads) conn |> put_resp_content_type("text/html") |