From d76f0d87bebd655bcbc4259a47a4ee8fd4f00887 Mon Sep 17 00:00:00 2001 From: Hakaba Hitoyo Date: Tue, 17 Jul 2018 16:45:18 +0900 Subject: [PATCH] do nothing if configuration is skipped --- config/config.exs | 6 +-- .../mastodon_api/mastodon_api_controller.ex | 41 +++++++++++-------- 2 files changed, 26 insertions(+), 21 deletions(-) diff --git a/config/config.exs b/config/config.exs index 3583e7b46..4d5a7564a 100644 --- a/config/config.exs +++ b/config/config.exs @@ -95,9 +95,9 @@ ip: {0, 0, 0, 0}, port: 9999 -config :pleroma, :suggestions, - third_party_engine: - "http://vinayaka.distsn.org/cgi-bin/vinayaka-user-match-suggestions-api.cgi?{{host}}+{{user}}" +# config :pleroma, :suggestions, +# third_party_engine: +# "http://vinayaka.distsn.org/cgi-bin/vinayaka-user-match-suggestions-api.cgi?{{host}}+{{user}}" # Import environment specific config. This must remain at the bottom # of this file so it overrides the configuration defined above. diff --git a/lib/pleroma/web/mastodon_api/mastodon_api_controller.ex b/lib/pleroma/web/mastodon_api/mastodon_api_controller.ex index 2f8139fe6..ac8f794e9 100644 --- a/lib/pleroma/web/mastodon_api/mastodon_api_controller.ex +++ b/lib/pleroma/web/mastodon_api/mastodon_api_controller.ex @@ -1076,28 +1076,33 @@ def errors(conn, _) do @suggestions Application.get_env(:pleroma, :suggestions) def suggestions(%{assigns: %{user: user}} = conn, _) do - host = - Application.get_env(:pleroma, Pleroma.Web.Endpoint) - |> Keyword.get(:url) - |> Keyword.get(:host) + api = Keyword.get(@suggestions, :third_party_engine, false) - user = user.nickname - api = Keyword.get(@suggestions, :third_party_engine, "") - url = String.replace(api, "{{host}}", host) |> String.replace("{{user}}", user) + if api do + host = + Application.get_env(:pleroma, Pleroma.Web.Endpoint) + |> Keyword.get(:url) + |> Keyword.get(:host) - with {:ok, %{status_code: 200, body: body}} <- - @httpoison.get(url, [], timeout: 300_000, recv_timeout: 300_000), - {:ok, data} <- Jason.decode(body) do - data2 = - Enum.slice(data, 0, 40) - |> Enum.map(fn x -> - Map.put(x, "id", User.get_or_fetch(x["acct"]).id) - end) + user = user.nickname + url = String.replace(api, "{{host}}", host) |> String.replace("{{user}}", user) - conn - |> json(data2) + with {:ok, %{status_code: 200, body: body}} <- + @httpoison.get(url, [], timeout: 300_000, recv_timeout: 300_000), + {:ok, data} <- Jason.decode(body) do + data2 = + Enum.slice(data, 0, 40) + |> Enum.map(fn x -> + Map.put(x, "id", User.get_or_fetch(x["acct"]).id) + end) + + conn + |> json(data2) + else + e -> Logger.error("Could not decode user at fetch #{url}, #{inspect(e)}") + end else - e -> Logger.error("Could not decode user at fetch #{url}, #{inspect(e)}") + json(conn, []) end end end