MRF Transparency
[akkoma] / lib / pleroma / web / nodeinfo / nodeinfo_controller.ex
index 184b81c25a812d6af6404a001e63dd2c8c5262e9..1f1b0282c30970e87aca6494ac83739588958e65 100644 (file)
@@ -28,6 +28,25 @@ defmodule Pleroma.Web.Nodeinfo.NodeinfoController do
     stats = Stats.get_stats()
     mrf_simple = Application.get_env(:pleroma, :mrf_simple)
 
+    mrf_policies = Keyword.get(instance, :rewrite_policy)
+
+    mrf_policies =
+      if(is_list(mrf_policies)) do
+        mrf_policies
+        |> Enum.map(fn policy -> to_string(policy) |> String.split(".") |> List.last() end)
+      else
+        [to_string(mrf_policies) |> String.split(".") |> List.last()]
+      end
+
+    quarantined = Keyword.get(instance, :quarantined_instances)
+
+    quarantined =
+      if is_list(quarantined) do
+        quarantined
+      else
+        []
+      end
+
     staff_accounts =
       User.moderator_user_query()
       |> Repo.all()
@@ -66,7 +85,11 @@ defmodule Pleroma.Web.Nodeinfo.NodeinfoController do
         staffAccounts: staff_accounts,
         chat: Keyword.get(chat, :enabled),
         gopher: Keyword.get(gopher, :enabled),
-        mrf_simple: Enum.into(mrf_simple, %{})
+        federation: %{
+          mrf_policies: mrf_policies,
+          mrf_simple: mrf_simple,
+          quarantined_instances: quarantined
+        }
       }
     }