Browse Source

nodeinfo: use MRF.describe() instead of hardcoded MRF transparency stuff

tags/v1.1.4
Ariadne Conill 4 years ago
parent
commit
f305e97eeb
1 changed files with 4 additions and 50 deletions
  1. +4
    -50
      lib/pleroma/web/nodeinfo/nodeinfo_controller.ex

+ 4
- 50
lib/pleroma/web/nodeinfo/nodeinfo_controller.ex View File

@@ -34,64 +34,18 @@ defmodule Pleroma.Web.Nodeinfo.NodeinfoController do
def raw_nodeinfo do
stats = Stats.get_stats()

exclusions = Config.get([:instance, :mrf_transparency_exclusions])

mrf_simple =
Config.get(:mrf_simple)
|> Enum.map(fn {k, v} -> {k, Enum.reject(v, fn v -> v in exclusions end)} end)
|> Enum.into(%{})

# This horror is needed to convert regex sigils to strings
mrf_keyword =
Config.get(:mrf_keyword, [])
|> Enum.map(fn {key, value} ->
{key,
Enum.map(value, fn
{pattern, replacement} ->
%{
"pattern" =>
if not is_binary(pattern) do
inspect(pattern)
else
pattern
end,
"replacement" => replacement
}

pattern ->
if not is_binary(pattern) do
inspect(pattern)
else
pattern
end
end)}
end)
|> Enum.into(%{})

mrf_policies =
MRF.get_policies()
|> Enum.map(fn policy -> to_string(policy) |> String.split(".") |> List.last() end)

quarantined = Config.get([:instance, :quarantined_instances], [])

staff_accounts =
User.all_superusers()
|> Enum.map(fn u -> u.ap_id end)

mrf_user_allowlist =
Config.get([:mrf_user_allowlist], [])
|> Enum.into(%{}, fn {k, v} -> {k, length(v)} end)

federation_response =
if Config.get([:instance, :mrf_transparency]) do
%{
mrf_policies: mrf_policies,
mrf_simple: mrf_simple,
mrf_keyword: mrf_keyword,
mrf_user_allowlist: mrf_user_allowlist,
quarantined_instances: quarantined,
exclusions: length(exclusions) > 0
}
{:ok, data} = MRF.describe()

data
|> Map.merge(%{quarantined_instances: quarantined})
else
%{}
end


Loading…
Cancel
Save