[Pleroma.Web.Nodeinfo.NodeinfoController]: Have a list of supported features
authorHaelwenn (lanodan) Monnier <contact@hacktivis.me>
Tue, 4 Sep 2018 16:15:02 +0000 (18:15 +0200)
committerHaelwenn (lanodan) Monnier <contact@hacktivis.me>
Thu, 25 Oct 2018 23:06:19 +0000 (01:06 +0200)
lib/pleroma/web/nodeinfo/nodeinfo_controller.ex

index c40bf16569abc5d3b44f49d72cd76dd88c53ff96..b95e12aedbe8abd5673303801306dac957da2868 100644 (file)
@@ -63,6 +63,24 @@ defmodule Pleroma.Web.Nodeinfo.NodeinfoController 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 @@ defmodule Pleroma.Web.Nodeinfo.NodeinfoController 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 @@ defmodule Pleroma.Web.Nodeinfo.NodeinfoController 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,
       }
     }