diff options
Diffstat (limited to 'lib/pleroma/web/mastodon_api')
-rw-r--r-- | lib/pleroma/web/mastodon_api/views/instance_view.ex | 62 |
1 files changed, 4 insertions, 58 deletions
diff --git a/lib/pleroma/web/mastodon_api/views/instance_view.ex b/lib/pleroma/web/mastodon_api/views/instance_view.ex index dac68d8e6..9b4eeb46f 100644 --- a/lib/pleroma/web/mastodon_api/views/instance_view.ex +++ b/lib/pleroma/web/mastodon_api/views/instance_view.ex @@ -6,7 +6,7 @@ defmodule Pleroma.Web.MastodonAPI.InstanceView do use Pleroma.Web, :view alias Pleroma.Config - alias Pleroma.Web.ActivityPub.MRF + alias Pleroma.Web.Nodeinfo.Nodeinfo @mastodon_api_level "2.7.2" @@ -41,9 +41,9 @@ defmodule Pleroma.Web.MastodonAPI.InstanceView do pleroma: %{ metadata: %{ account_activation_required: Keyword.get(instance, :account_activation_required), - features: features(), - federation: federation(), - fields_limits: fields_limits(), + features: Nodeinfo.features(), + federation: Nodeinfo.federation(), + fields_limits: Nodeinfo.fields_limits(), post_formats: Config.get([:instance, :allowed_post_formats]) }, stats: %{mau: Pleroma.User.active_user_count()}, @@ -51,58 +51,4 @@ defmodule Pleroma.Web.MastodonAPI.InstanceView do } } end - - def features do - [ - "pleroma_api", - "mastodon_api", - "mastodon_api_streaming", - "polls", - "pleroma_explicit_addressing", - "shareable_emoji_packs", - "multifetch", - "pleroma:api/v1/notifications:include_types_filter", - if Config.get([:media_proxy, :enabled]) do - "media_proxy" - end, - if Config.get([:gopher, :enabled]) do - "gopher" - end, - if Config.get([:chat, :enabled]) do - "chat" - end, - if Config.get([:instance, :allow_relay]) do - "relay" - end, - if Config.get([:instance, :safe_dm_mentions]) do - "safe_dm_mentions" - end, - "pleroma_emoji_reactions", - "pleroma_chat_messages" - ] - |> Enum.filter(& &1) - end - - def federation do - quarantined = Config.get([:instance, :quarantined_instances], []) - - if Config.get([:mrf, :transparency]) do - {:ok, data} = MRF.describe() - - data - |> Map.merge(%{quarantined_instances: quarantined}) - else - %{} - end - |> Map.put(:enabled, Config.get([:instance, :federating])) - end - - def fields_limits do - %{ - max_fields: Config.get([:instance, :max_account_fields]), - max_remote_fields: Config.get([:instance, :max_remote_account_fields]), - name_length: Config.get([:instance, :account_field_name_length]), - value_length: Config.get([:instance, :account_field_value_length]) - } - end end |