diff options
author | tusooa <tusooa@kazv.moe> | 2023-01-26 20:17:13 -0500 |
---|---|---|
committer | tusooa <tusooa@kazv.moe> | 2023-01-26 20:17:13 -0500 |
commit | bc7ec431795ffb096648902fdd30047cfdb64b4f (patch) | |
tree | 624e218c88e53c0dd47d3ef3fd8f5e9ef4d02c12 | |
parent | 2a244b391d8c1d9d8e960532758110928cb5ef7c (diff) | |
download | pleroma-bc7ec431795ffb096648902fdd30047cfdb64b4f.tar.gz pleroma-bc7ec431795ffb096648902fdd30047cfdb64b4f.zip |
Allow customizing instance languages
-rw-r--r-- | config/description.exs | 9 | ||||
-rw-r--r-- | lib/pleroma/web/mastodon_api/views/instance_view.ex | 2 | ||||
-rw-r--r-- | test/pleroma/web/mastodon_api/controllers/instance_controller_test.exs | 14 |
3 files changed, 24 insertions, 1 deletions
diff --git a/config/description.exs b/config/description.exs index bf4734426..78dc8770d 100644 --- a/config/description.exs +++ b/config/description.exs @@ -1052,6 +1052,15 @@ config :pleroma, :config_description, [ description: "Minimum required age (in days) for users to create account. Only used if birthday is required.", suggestions: [6570] + }, + %{ + key: :languages, + type: {:list, :string}, + description: + "Languages to be exposed in /api/v1/instance. Should be in the format of BCP47 language codes.", + suggestions: [ + "en" + ] } ] }, diff --git a/lib/pleroma/web/mastodon_api/views/instance_view.ex b/lib/pleroma/web/mastodon_api/views/instance_view.ex index 917725839..abf7f29ab 100644 --- a/lib/pleroma/web/mastodon_api/views/instance_view.ex +++ b/lib/pleroma/web/mastodon_api/views/instance_view.ex @@ -27,7 +27,7 @@ defmodule Pleroma.Web.MastodonAPI.InstanceView do thumbnail: URI.merge(Pleroma.Web.Endpoint.url(), Keyword.get(instance, :instance_thumbnail)) |> to_string, - languages: ["en"], + languages: Keyword.get(instance, :languages, ["en"]), registrations: Keyword.get(instance, :registrations_open), approval_required: Keyword.get(instance, :account_approval_required), # Extra (not present in Mastodon): diff --git a/test/pleroma/web/mastodon_api/controllers/instance_controller_test.exs b/test/pleroma/web/mastodon_api/controllers/instance_controller_test.exs index 13e3ffc0a..a556ef6a8 100644 --- a/test/pleroma/web/mastodon_api/controllers/instance_controller_test.exs +++ b/test/pleroma/web/mastodon_api/controllers/instance_controller_test.exs @@ -92,4 +92,18 @@ defmodule Pleroma.Web.MastodonAPI.InstanceControllerTest do assert ["peer1.com", "peer2.com"] == Enum.sort(result) end + + test "instance languages", %{conn: conn} do + assert %{"languages" => ["en"]} = + conn + |> get("/api/v1/instance") + |> json_response_and_validate_schema(200) + + clear_config([:instance, :languages], ["aa", "bb"]) + + assert %{"languages" => ["aa", "bb"]} = + conn + |> get("/api/v1/instance") + |> json_response_and_validate_schema(200) + end end |