forked from AkkomaGang/akkoma
Pleroma.Web.ActivityPub.Transmogrifier: fix_url when not a string/empty
Thanks prismo.news, I hate it
This commit is contained in:
parent
755f166406
commit
b2da5262ea
1 changed files with 22 additions and 0 deletions
|
@ -57,6 +57,7 @@ def fix_object(object) do
|
||||||
object
|
object
|
||||||
|> fix_actor
|
|> fix_actor
|
||||||
|> fix_attachments
|
|> fix_attachments
|
||||||
|
|> fix_url
|
||||||
|> fix_context
|
|> fix_context
|
||||||
|> fix_in_reply_to
|
|> fix_in_reply_to
|
||||||
|> fix_emoji
|
|> fix_emoji
|
||||||
|
@ -171,6 +172,27 @@ def fix_attachments(%{"attachment" => attachment} = object) when is_map(attachme
|
||||||
|
|
||||||
def fix_attachments(object), do: object
|
def fix_attachments(object), do: object
|
||||||
|
|
||||||
|
def fix_url(%{"url" => url} = object) when is_map(url) do
|
||||||
|
object
|
||||||
|
|> Map.put("url", url["href"])
|
||||||
|
end
|
||||||
|
|
||||||
|
def fix_url(%{"url" => url} = object) when is_list(url) do
|
||||||
|
first_element = Enum.at(url, 0)
|
||||||
|
|
||||||
|
url_string =
|
||||||
|
cond do
|
||||||
|
is_bitstring(first_element) -> first_element
|
||||||
|
is_map(first_element) -> first_element["href"] || ""
|
||||||
|
true -> ""
|
||||||
|
end
|
||||||
|
|
||||||
|
object
|
||||||
|
|> Map.put("url", url_string)
|
||||||
|
end
|
||||||
|
|
||||||
|
def fix_url(object), do: object
|
||||||
|
|
||||||
def fix_emoji(%{"tag" => tags} = object) when is_list(tags) do
|
def fix_emoji(%{"tag" => tags} = object) when is_list(tags) do
|
||||||
emoji = tags |> Enum.filter(fn data -> data["type"] == "Emoji" and data["icon"] end)
|
emoji = tags |> Enum.filter(fn data -> data["type"] == "Emoji" and data["icon"] end)
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue