Allow to specify post language
Signed-off-by: marcin mikołajczak <git@mkljczk.pl>
This commit is contained in:
parent
b729a8b140
commit
4745a41393
14 changed files with 279 additions and 25 deletions
|
|
@ -33,6 +33,7 @@ defmodule Pleroma.Web.CommonAPI.ActivityDraft do
|
|||
cc: [],
|
||||
context: nil,
|
||||
sensitive: false,
|
||||
language: nil,
|
||||
object: nil,
|
||||
preview?: false,
|
||||
changes: %{}
|
||||
|
|
@ -57,6 +58,7 @@ defmodule Pleroma.Web.CommonAPI.ActivityDraft do
|
|||
|> content()
|
||||
|> with_valid(&to_and_cc/1)
|
||||
|> with_valid(&context/1)
|
||||
|> with_valid(&language/1)
|
||||
|> sensitive()
|
||||
|> with_valid(&object/1)
|
||||
|> preview?()
|
||||
|
|
@ -190,6 +192,16 @@ defmodule Pleroma.Web.CommonAPI.ActivityDraft do
|
|||
%__MODULE__{draft | sensitive: sensitive}
|
||||
end
|
||||
|
||||
defp language(draft) do
|
||||
language = draft.params[:language]
|
||||
|
||||
if Utils.is_good_locale_code?(language) do
|
||||
%__MODULE__{draft | language: language}
|
||||
else
|
||||
draft
|
||||
end
|
||||
end
|
||||
|
||||
defp object(draft) do
|
||||
emoji = Map.merge(Pleroma.Emoji.Formatter.get_emoji_map(draft.full_payload), draft.emoji)
|
||||
|
||||
|
|
@ -229,6 +241,7 @@ defmodule Pleroma.Web.CommonAPI.ActivityDraft do
|
|||
"mediaType" => Utils.get_content_type(draft.params[:content_type])
|
||||
})
|
||||
|> Map.put("generator", draft.params[:generator])
|
||||
|> Map.put("language", draft.language)
|
||||
|
||||
%__MODULE__{draft | object: object}
|
||||
end
|
||||
|
|
|
|||
|
|
@ -494,4 +494,20 @@ defmodule Pleroma.Web.CommonAPI.Utils do
|
|||
{:error, dgettext("errors", "Too many attachments")}
|
||||
end
|
||||
end
|
||||
|
||||
def is_good_locale_code?(code) when is_binary(code) do
|
||||
code
|
||||
|> String.codepoints()
|
||||
|> Enum.all?(&valid_char?/1)
|
||||
end
|
||||
|
||||
def is_good_locale_code?(_code), do: false
|
||||
|
||||
# [a-zA-Z0-9-]
|
||||
defp valid_char?(char) do
|
||||
("a" <= char and char <= "z") or
|
||||
("A" <= char and char <= "Z") or
|
||||
("0" <= char and char <= "9") or
|
||||
char == "-"
|
||||
end
|
||||
end
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue