|
|
@@ -4,6 +4,7 @@ defmodule Pleroma.Web.Nodeinfo.NodeinfoController do |
|
|
|
alias Pleroma.Stats |
|
|
|
alias Pleroma.Web |
|
|
|
alias Pleroma.{User, Repo} |
|
|
|
alias Pleroma.Web.ActivityPub.MRF |
|
|
|
|
|
|
|
def schemas(conn, _params) do |
|
|
|
response = %{ |
|
|
@@ -31,15 +32,9 @@ defmodule Pleroma.Web.Nodeinfo.NodeinfoController do |
|
|
|
Application.get_env(:pleroma, :mrf_simple) |
|
|
|
|> Enum.into(%{}) |
|
|
|
|
|
|
|
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 |
|
|
|
MRF.get_policies() |
|
|
|
|> Enum.map(fn policy -> to_string(policy) |> String.split(".") |> List.last() end) |
|
|
|
|
|
|
|
quarantined = Keyword.get(instance, :quarantined_instances) |
|
|
|
|
|
|
@@ -55,6 +50,19 @@ defmodule Pleroma.Web.Nodeinfo.NodeinfoController do |
|
|
|
|> Repo.all() |
|
|
|
|> Enum.map(fn u -> u.ap_id end) |
|
|
|
|
|
|
|
mrf_transparency = Keyword.get(instance, :mrf_transparency) |
|
|
|
|
|
|
|
federation_response = |
|
|
|
if mrf_transparency do |
|
|
|
%{ |
|
|
|
mrf_policies: mrf_policies, |
|
|
|
mrf_simple: mrf_simple, |
|
|
|
quarantined_instances: quarantined |
|
|
|
} |
|
|
|
else |
|
|
|
%{} |
|
|
|
end |
|
|
|
|
|
|
|
response = %{ |
|
|
|
version: "2.0", |
|
|
|
software: %{ |
|
|
@@ -88,11 +96,7 @@ defmodule Pleroma.Web.Nodeinfo.NodeinfoController do |
|
|
|
staffAccounts: staff_accounts, |
|
|
|
chat: Keyword.get(chat, :enabled), |
|
|
|
gopher: Keyword.get(gopher, :enabled), |
|
|
|
federation: %{ |
|
|
|
mrf_policies: mrf_policies, |
|
|
|
mrf_simple: mrf_simple, |
|
|
|
quarantined_instances: quarantined |
|
|
|
}, |
|
|
|
federation: federation_response, |
|
|
|
postFormats: Keyword.get(instance, :allowed_post_formats) |
|
|
|
} |
|
|
|
} |
|
|
|