From c05928dbdabfafc536512341e8d64b240b097f62 Mon Sep 17 00:00:00 2001 From: Luna Date: Fri, 1 Feb 2019 03:55:10 -0300 Subject: [PATCH] use nodeinfo 2.1, add repository field that is the only change from nodeinfo 2.0 to 2.1 also this makes the nodeinfo tests use 2.1.json instead of 2.0.json --- lib/pleroma/application.ex | 2 ++ lib/pleroma/web/nodeinfo/nodeinfo_controller.ex | 15 ++++++++------- test/web/node_info_test.exs | 8 ++++---- 3 files changed, 14 insertions(+), 11 deletions(-) diff --git a/lib/pleroma/application.ex b/lib/pleroma/application.ex index 40bff08c7..8b50bcf8c 100644 --- a/lib/pleroma/application.ex +++ b/lib/pleroma/application.ex @@ -8,9 +8,11 @@ defmodule Pleroma.Application do @name "Pleroma" @version Mix.Project.config()[:version] + @repository "https://git.pleroma.social/pleroma/pleroma" def name, do: @name def version, do: @version def named_version(), do: @name <> " " <> @version + def repository, do: @repository def user_agent() do info = "#{Pleroma.Web.base_url()} <#{Pleroma.Config.get([:instance, :email], "")}>" diff --git a/lib/pleroma/web/nodeinfo/nodeinfo_controller.ex b/lib/pleroma/web/nodeinfo/nodeinfo_controller.ex index 11b97164d..de7256dda 100644 --- a/lib/pleroma/web/nodeinfo/nodeinfo_controller.ex +++ b/lib/pleroma/web/nodeinfo/nodeinfo_controller.ex @@ -17,8 +17,8 @@ defmodule Pleroma.Web.Nodeinfo.NodeinfoController do response = %{ links: [ %{ - rel: "http://nodeinfo.diaspora.software/ns/schema/2.0", - href: Web.base_url() <> "/nodeinfo/2.0.json" + rel: "http://nodeinfo.diaspora.software/ns/schema/2.1", + href: Web.base_url() <> "/nodeinfo/2.1.json" } ] } @@ -26,8 +26,8 @@ defmodule Pleroma.Web.Nodeinfo.NodeinfoController do json(conn, response) end - # Schema definition: https://github.com/jhass/nodeinfo/blob/master/schemas/2.0/schema.json - def nodeinfo(conn, %{"version" => "2.0"}) do + # Schema definition: https://github.com/jhass/nodeinfo/blob/master/schemas/2.1/schema.json + def nodeinfo(conn, %{"version" => "2.1"}) do instance = Application.get_env(:pleroma, :instance) media_proxy = Application.get_env(:pleroma, :media_proxy) suggestions = Application.get_env(:pleroma, :suggestions) @@ -99,10 +99,11 @@ defmodule Pleroma.Web.Nodeinfo.NodeinfoController do |> Enum.filter(& &1) response = %{ - version: "2.0", + version: "2.1", software: %{ name: Pleroma.Application.name(), - version: Pleroma.Application.version() + version: Pleroma.Application.version(), + repository: Pleroma.Application.repository(), }, protocols: ["ostatus", "activitypub"], services: %{ @@ -146,7 +147,7 @@ defmodule Pleroma.Web.Nodeinfo.NodeinfoController do conn |> put_resp_header( "content-type", - "application/json; profile=http://nodeinfo.diaspora.software/ns/schema/2.0#; charset=utf-8" + "application/json; profile=http://nodeinfo.diaspora.software/ns/schema/2.1#; charset=utf-8" ) |> json(response) end diff --git a/test/web/node_info_test.exs b/test/web/node_info_test.exs index 5981c70a7..360ee0baf 100644 --- a/test/web/node_info_test.exs +++ b/test/web/node_info_test.exs @@ -12,7 +12,7 @@ defmodule Pleroma.Web.NodeInfoTest do conn = conn - |> get("/nodeinfo/2.0.json") + |> get("/nodeinfo/2.1.json") assert result = json_response(conn, 200) @@ -22,7 +22,7 @@ defmodule Pleroma.Web.NodeInfoTest do test "nodeinfo shows restricted nicknames", %{conn: conn} do conn = conn - |> get("/nodeinfo/2.0.json") + |> get("/nodeinfo/2.1.json") assert result = json_response(conn, 200) @@ -42,7 +42,7 @@ defmodule Pleroma.Web.NodeInfoTest do |> json_response(404) conn - |> get("/nodeinfo/2.0.json") + |> get("/nodeinfo/2.1.json") |> json_response(404) instance = @@ -58,7 +58,7 @@ defmodule Pleroma.Web.NodeInfoTest do |> json_response(200) conn - |> get("/nodeinfo/2.0.json") + |> get("/nodeinfo/2.1.json") |> json_response(200) end end