alias Pleroma.Stats
alias Pleroma.Web
alias Pleroma.{User, Repo}
+ alias Pleroma.Config
alias Pleroma.Web.ActivityPub.MRF
+ plug(Pleroma.Web.FederatingPlug)
+
def schemas(conn, _params) do
response = %{
links: [
|> Repo.all()
|> 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)
+
mrf_transparency = Keyword.get(instance, :mrf_transparency)
federation_response =
%{
mrf_policies: mrf_policies,
mrf_simple: mrf_simple,
+ mrf_user_allowlist: mrf_user_allowlist,
quarantined_instances: quarantined
}
else
%{}
end
- features = [
- "pleroma_api",
- "mastodon_api",
- "mastodon_api_streaming",
- if Keyword.get(media_proxy, :enabled) do
- "media_proxy"
- end,
- if Keyword.get(gopher, :enabled) do
- "gopher"
- end,
- if Keyword.get(chat, :enabled) do
- "chat"
- end,
- if Keyword.get(suggestions, :enabled) do
- "suggestions"
- end
- ]
+ features =
+ [
+ "pleroma_api",
+ "mastodon_api",
+ "mastodon_api_streaming",
+ if Keyword.get(media_proxy, :enabled) do
+ "media_proxy"
+ end,
+ if Keyword.get(gopher, :enabled) do
+ "gopher"
+ end,
+ if Keyword.get(chat, :enabled) do
+ "chat"
+ end,
+ if Keyword.get(suggestions, :enabled) do
+ "suggestions"
+ end,
+ if Keyword.get(instance, :allow_relay) do
+ "relay"
+ end
+ ]
+ |> Enum.filter(& &1)
response = %{
version: "2.0",
software: %{
- name: "pleroma",
- version: Keyword.get(instance, :version)
+ name: Pleroma.Application.name(),
+ version: Pleroma.Application.version()
},
protocols: ["ostatus", "activitypub"],
services: %{
staffAccounts: staff_accounts,
federation: federation_response,
postFormats: Keyword.get(instance, :allowed_post_formats),
+ uploadLimits: %{
+ general: Keyword.get(instance, :upload_limit),
+ avatar: Keyword.get(instance, :avatar_upload_limit),
+ banner: Keyword.get(instance, :banner_upload_limit),
+ background: Keyword.get(instance, :background_upload_limit)
+ },
features: features
}
}