Change user.discoverable field to user.is_discoverable
[akkoma] / lib / pleroma / web / preload / instance.ex
index 0b6fd33139bacec08fabbd5beb0ae4557b6ce021..cc6f8cf99804d099e08adfd3eb43bac33eab59c5 100644 (file)
@@ -3,14 +3,17 @@
 # SPDX-License-Identifier: AGPL-3.0-only
 
 defmodule Pleroma.Web.Preload.Providers.Instance do
+  alias Pleroma.Plugs.InstanceStatic
   alias Pleroma.Web.MastodonAPI.InstanceView
   alias Pleroma.Web.Nodeinfo.Nodeinfo
   alias Pleroma.Web.Preload.Providers.Provider
+  alias Pleroma.Web.TwitterAPI.UtilView
 
   @behaviour Provider
-  @instance_url :"/api/v1/instance"
-  @panel_url :"/instance/panel.html"
-  @nodeinfo_url :"/nodeinfo/2.0"
+  @instance_url "/api/v1/instance"
+  @panel_url "/instance/panel.html"
+  @nodeinfo_url "/nodeinfo/2.0.json"
+  @fe_config_url "/api/pleroma/frontend_configurations"
 
   @impl Provider
   def generate_terms(_params) do
@@ -18,6 +21,7 @@ defmodule Pleroma.Web.Preload.Providers.Instance do
     |> build_info_tag()
     |> build_panel_tag()
     |> build_nodeinfo_tag()
+    |> build_fe_config_tag()
   end
 
   defp build_info_tag(acc) do
@@ -27,7 +31,7 @@ defmodule Pleroma.Web.Preload.Providers.Instance do
   end
 
   defp build_panel_tag(acc) do
-    instance_path = Path.join(:code.priv_dir(:pleroma), "static/instance/panel.html")
+    instance_path = InstanceStatic.file_path(@panel_url |> to_string())
 
     if File.exists?(instance_path) do
       panel_data = File.read!(instance_path)
@@ -46,4 +50,10 @@ defmodule Pleroma.Web.Preload.Providers.Instance do
         Map.put(acc, @nodeinfo_url, nodeinfo_data)
     end
   end
+
+  defp build_fe_config_tag(acc) do
+    fe_data = UtilView.render("frontend_configurations.json", %{})
+
+    Map.put(acc, @fe_config_url, fe_data)
+  end
 end