Merge branch 'develop' of https://git.pleroma.social/pleroma/pleroma into develop
[akkoma] / lib / pleroma / web / nodeinfo / nodeinfo_controller.ex
index ee14cfd6b62768634be9bef4378c95359e4392ae..533f82f6c33796d9b4b2d8d8d25871ffc279dacc 100644 (file)
@@ -33,8 +33,11 @@ defmodule Pleroma.Web.Nodeinfo.NodeinfoController do
   # under software.
   def raw_nodeinfo do
     stats = Stats.get_stats()
-
-    quarantined = Config.get([:instance, :quarantined_instances], [])
+    exclusions = Config.get([:instance, :mrf_transparency_exclusions], [])
+    quarantined =
+      Config.get([:instance, :quarantined_instances], [])
+      |> Enum.filter(fn x -> !Enum.member?(exclusions, x) end)
 
     staff_accounts =
       User.all_superusers()
@@ -46,6 +49,7 @@ defmodule Pleroma.Web.Nodeinfo.NodeinfoController do
 
         data
         |> Map.merge(%{quarantined_instances: quarantined})
+        |> Map.put(:enabled, Config.get([:instance, :federating]))
       else
         %{}
       end
@@ -57,6 +61,8 @@ defmodule Pleroma.Web.Nodeinfo.NodeinfoController do
         "mastodon_api_streaming",
         "polls",
         "pleroma_explicit_addressing",
+        "shareable_emoji_packs",
+        "multifetch",
         if Config.get([:media_proxy, :enabled]) do
           "media_proxy"
         end,
@@ -117,6 +123,12 @@ defmodule Pleroma.Web.Nodeinfo.NodeinfoController do
           banner: Config.get([:instance, :banner_upload_limit]),
           background: Config.get([:instance, :background_upload_limit])
         },
+        fieldsLimits: %{
+          maxFields: Config.get([:instance, :max_account_fields]),
+          maxRemoteFields: Config.get([:instance, :max_remote_account_fields]),
+          nameLength: Config.get([:instance, :account_field_name_length]),
+          valueLength: Config.get([:instance, :account_field_value_length])
+        },
         accountActivationRequired: Config.get([:instance, :account_activation_required], false),
         invitesEnabled: Config.get([:instance, :invites_enabled], false),
         mailerEnabled: Config.get([Pleroma.Emails.Mailer, :enabled], false),