summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlex Gleason <alex@alexgleason.me>2021-05-19 13:38:01 -0500
committerAlex Gleason <alex@alexgleason.me>2021-05-19 13:38:01 -0500
commita5bbebda588a54cb76d1a75239523db676980eb0 (patch)
tree213cf978ed4584f38204b528edaaa36e4c52c2df
parentb221d77a6da07c684bdbc63ddf4500e0d7ffeae8 (diff)
Fix InstanceView recompilation issue
-rw-r--r--lib/pleroma/web/mastodon_api/views/instance_view.ex62
-rw-r--r--lib/pleroma/web/nodeinfo/nodeinfo.ex63
2 files changed, 61 insertions, 64 deletions
diff --git a/lib/pleroma/web/mastodon_api/views/instance_view.ex b/lib/pleroma/web/mastodon_api/views/instance_view.ex
index 73205fb6d..af0d6a8a8 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"
@@ -40,9 +40,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()},
@@ -50,58 +50,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
diff --git a/lib/pleroma/web/nodeinfo/nodeinfo.ex b/lib/pleroma/web/nodeinfo/nodeinfo.ex
index 6a0112d2a..b2b6d187d 100644
--- a/lib/pleroma/web/nodeinfo/nodeinfo.ex
+++ b/lib/pleroma/web/nodeinfo/nodeinfo.ex
@@ -6,8 +6,8 @@ defmodule Pleroma.Web.Nodeinfo.Nodeinfo do
alias Pleroma.Config
alias Pleroma.Stats
alias Pleroma.User
+ alias Pleroma.Web.ActivityPub.MRF
alias Pleroma.Web.Federator.Publisher
- alias Pleroma.Web.MastodonAPI.InstanceView
# returns a nodeinfo 2.0 map, since 2.1 just adds a repository field
# under software.
@@ -18,9 +18,6 @@ defmodule Pleroma.Web.Nodeinfo.Nodeinfo do
User.all_superusers()
|> Enum.map(fn u -> u.ap_id end)
- federation = InstanceView.federation()
- features = InstanceView.features()
-
%{
version: "2.0",
software: %{
@@ -47,7 +44,7 @@ defmodule Pleroma.Web.Nodeinfo.Nodeinfo do
enabled: false
},
staffAccounts: staff_accounts,
- federation: federation,
+ federation: federation(),
pollLimits: Config.get([:instance, :poll_limits]),
postFormats: Config.get([:instance, :allowed_post_formats]),
uploadLimits: %{
@@ -65,7 +62,7 @@ defmodule Pleroma.Web.Nodeinfo.Nodeinfo do
accountActivationRequired: Config.get([:instance, :account_activation_required], false),
invitesEnabled: Config.get([:instance, :invites_enabled], false),
mailerEnabled: Config.get([Pleroma.Emails.Mailer, :enabled], false),
- features: features,
+ features: features(),
restrictedNicknames: Config.get([Pleroma.User, :restricted_nicknames]),
skipThreadContainment: Config.get([:instance, :skip_thread_containment], false)
}
@@ -88,4 +85,58 @@ defmodule Pleroma.Web.Nodeinfo.Nodeinfo do
def get_nodeinfo(_version) do
{:error, :missing}
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