From ac2893a945a753ad05d46234ba80e14f3ce62c97 Mon Sep 17 00:00:00 2001 From: Roger Braun Date: Fri, 15 Sep 2017 10:26:28 +0200 Subject: [PATCH] Add instance config options. --- config/config.exs | 11 +++++++++++ config/dev.exs | 6 ++++++ lib/pleroma/web/mastodon_api/mastodon_api_controller.ex | 15 +++++++++++++-- 3 files changed, 30 insertions(+), 2 deletions(-) diff --git a/config/config.exs b/config/config.exs index 8f6fe00fb..3861f9901 100644 --- a/config/config.exs +++ b/config/config.exs @@ -34,6 +34,17 @@ config :pleroma, :websub, Pleroma.Web.Websub config :pleroma, :ostatus, Pleroma.Web.OStatus config :pleroma, :httpoison, HTTPoison +version = with {version, 0} <- System.cmd("git", ["rev-parse", "HEAD"]) do + "Pleroma #{String.trim(version)}" + else + _ -> "Pleroma dev" + end + +config :pleroma, :instance, + version: version, + name: "Pleroma", + email: "example@example.com" + # Import environment specific config. This must remain at the bottom # of this file so it overrides the configuration defined above. import_config "#{Mix.env}.exs" diff --git a/config/dev.exs b/config/dev.exs index 6adde84a2..126baea28 100644 --- a/config/dev.exs +++ b/config/dev.exs @@ -45,3 +45,9 @@ config :pleroma, Pleroma.Repo, database: "pleroma_dev", hostname: "localhost", pool_size: 10 + +try do + import_config "dev.secret.exs" +rescue + _-> nil +end diff --git a/lib/pleroma/web/mastodon_api/mastodon_api_controller.ex b/lib/pleroma/web/mastodon_api/mastodon_api_controller.ex index c713c561b..fa7f24f2d 100644 --- a/lib/pleroma/web/mastodon_api/mastodon_api_controller.ex +++ b/lib/pleroma/web/mastodon_api/mastodon_api_controller.ex @@ -39,12 +39,23 @@ defmodule Pleroma.Web.MastodonAPI.MastodonAPIController do end end + @instance Application.get_env(:pleroma, :instance) + def masto_instance(conn, _params) do response = %{ uri: Web.base_url, - title: Web.base_url, + title: Keyword.get(@instance, :name), description: "A Pleroma instance, an alternative fediverse server", - version: "Pleroma Dev" + version: Keyword.get(@instance, :version), + email: Keyword.get(@instance, :email), + urls: %{ + streaming_api: String.replace(Web.base_url, ["http","https"], "wss") + }, + stats: %{ + user_count: 1, + status_count: 2, + domain_count: 3 + } } json(conn, response)