nodeinfo: gather supported protocol names from federation modules

This commit is contained in:
William Pitcock 2019-05-12 19:15:29 +00:00
parent 28f7f4c6de
commit 44b182732e
5 changed files with 21 additions and 1 deletions

View file

@ -147,4 +147,6 @@ defmodule Pleroma.Web.ActivityPub.Publisher do
} }
] ]
end end
def gather_nodeinfo_protocol_names, do: ["activitypub"]
end end

View file

@ -79,4 +79,17 @@ defmodule Pleroma.Web.Federator.Publisher do
links ++ module.gather_webfinger_links(user) links ++ module.gather_webfinger_links(user)
end) end)
end end
@doc """
Gathers nodeinfo protocol names supported by the federation module.
"""
@callback gather_nodeinfo_protocol_names() :: list()
@spec gather_nodeinfo_protocol_names() :: list()
def gather_nodeinfo_protocol_names do
Config.get([:instance, :federation_publisher_modules])
|> Enum.reduce([], fn module, links ->
links ++ module.gather_nodeinfo_protocol_names()
end)
end
end end

View file

@ -10,6 +10,7 @@ defmodule Pleroma.Web.Nodeinfo.NodeinfoController do
alias Pleroma.User alias Pleroma.User
alias Pleroma.Web alias Pleroma.Web
alias Pleroma.Web.ActivityPub.MRF alias Pleroma.Web.ActivityPub.MRF
alias Pleroma.Web.Federator.Publisher
plug(Pleroma.Web.FederatingPlug) plug(Pleroma.Web.FederatingPlug)
@ -137,7 +138,7 @@ defmodule Pleroma.Web.Nodeinfo.NodeinfoController do
name: Pleroma.Application.name() |> String.downcase(), name: Pleroma.Application.name() |> String.downcase(),
version: Pleroma.Application.version() version: Pleroma.Application.version()
}, },
protocols: ["ostatus", "activitypub"], protocols: Publisher.gather_nodeinfo_protocol_names(),
services: %{ services: %{
inbound: [], inbound: [],
outbound: [] outbound: []

View file

@ -264,4 +264,6 @@ defmodule Pleroma.Web.Salmon do
} }
] ]
end end
def gather_nodeinfo_protocol_names, do: []
end end

View file

@ -328,4 +328,6 @@ defmodule Pleroma.Web.Websub do
} }
] ]
end end
def gather_nodeinfo_protocol_names, do: ["ostatus"]
end end