diff --git a/lib/pleroma/web/nodeinfo/nodeinfo_controller.ex b/lib/pleroma/web/nodeinfo/nodeinfo_controller.ex index c40bf1656..b95e12aed 100644 --- a/lib/pleroma/web/nodeinfo/nodeinfo_controller.ex +++ b/lib/pleroma/web/nodeinfo/nodeinfo_controller.ex @@ -63,6 +63,24 @@ def nodeinfo(conn, %{"version" => "2.0"}) do %{} end + features = [ + "pleroma_api_socket", + "mastodon_api_socket", + "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 + "pleroma_api_chat" + end, + if Keyword.get(suggestions, :enabled) do + "3rdparty_suggestions" + end + ] + response = %{ version: "2.0", software: %{ @@ -84,7 +102,6 @@ def nodeinfo(conn, %{"version" => "2.0"}) do metadata: %{ nodeName: Keyword.get(instance, :name), nodeDescription: Keyword.get(instance, :description), - mediaProxy: Keyword.get(media_proxy, :enabled), private: !Keyword.get(instance, :public, true), suggestions: %{ enabled: Keyword.get(suggestions, :enabled, false), @@ -94,10 +111,9 @@ def nodeinfo(conn, %{"version" => "2.0"}) do web: Keyword.get(suggestions, :web, "") }, staffAccounts: staff_accounts, - chat: Keyword.get(chat, :enabled), - gopher: Keyword.get(gopher, :enabled), federation: federation_response, postFormats: Keyword.get(instance, :allowed_post_formats) + features: features, } }