Add supported languages list to /api/v2/instance
Signed-off-by: marcin mikołajczak <git@mkljczk.pl>
This commit is contained in:
parent
f0eb8e0b0c
commit
28f8bb00d8
9 changed files with 155 additions and 25 deletions
|
|
@ -6,9 +6,9 @@ defmodule Pleroma.Language.Translation do
|
|||
@cachex Pleroma.Config.get([:cachex, :provider], Cachex)
|
||||
|
||||
def configured? do
|
||||
service = get_service()
|
||||
provider = get_provider()
|
||||
|
||||
!!service and service.configured?
|
||||
!!provider and provider.configured?
|
||||
end
|
||||
|
||||
def translate(text, source_language, target_language) do
|
||||
|
|
@ -16,13 +16,13 @@ defmodule Pleroma.Language.Translation do
|
|||
|
||||
case @cachex.get(:translations_cache, cache_key) do
|
||||
{:ok, nil} ->
|
||||
service = get_service()
|
||||
provider = get_provider()
|
||||
|
||||
result =
|
||||
if !service or !service.configured? do
|
||||
if !configured?() do
|
||||
{:error, :not_found}
|
||||
else
|
||||
service.translate(text, source_language, target_language)
|
||||
provider.translate(text, source_language, target_language)
|
||||
end
|
||||
|
||||
store_result(result, cache_key)
|
||||
|
|
@ -37,7 +37,33 @@ defmodule Pleroma.Language.Translation do
|
|||
end
|
||||
end
|
||||
|
||||
defp get_service, do: Pleroma.Config.get([__MODULE__, :provider])
|
||||
def supported_languages(type) when type in [:source, :target] do
|
||||
provider = get_provider()
|
||||
|
||||
cache_key = "#{type}_languages/#{provider.name()}"
|
||||
|
||||
case @cachex.get(:translations_cache, cache_key) do
|
||||
{:ok, nil} ->
|
||||
result =
|
||||
if !configured?() do
|
||||
{:error, :not_found}
|
||||
else
|
||||
provider.supported_languages(type)
|
||||
end
|
||||
|
||||
store_result(result, cache_key)
|
||||
|
||||
result
|
||||
|
||||
{:ok, result} ->
|
||||
{:ok, result}
|
||||
|
||||
{:error, error} ->
|
||||
{:error, error}
|
||||
end
|
||||
end
|
||||
|
||||
defp get_provider, do: Pleroma.Config.get([__MODULE__, :provider])
|
||||
|
||||
defp get_cache_key(text, source_language, target_language) do
|
||||
"#{source_language}/#{target_language}/#{content_hash(text)}"
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue