aboutsummaryrefslogtreecommitdiff
path: root/lib/pleroma/web/common_api
diff options
context:
space:
mode:
Diffstat (limited to 'lib/pleroma/web/common_api')
-rw-r--r--lib/pleroma/web/common_api/common_api.ex4
-rw-r--r--lib/pleroma/web/common_api/utils.ex25
2 files changed, 9 insertions, 20 deletions
diff --git a/lib/pleroma/web/common_api/common_api.ex b/lib/pleroma/web/common_api/common_api.ex
index bc8f80389..374967a1b 100644
--- a/lib/pleroma/web/common_api/common_api.ex
+++ b/lib/pleroma/web/common_api/common_api.ex
@@ -154,7 +154,7 @@ defmodule Pleroma.Web.CommonAPI do
data,
visibility
),
- {poll, mentions, tags} <- make_poll_data(data, mentions, tags),
+ {poll, poll_emoji} <- make_poll_data(data),
{to, cc} <- to_for_user_and_mentions(user, mentions, in_reply_to, visibility),
context <- make_context(in_reply_to),
cw <- data["spoiler_text"] || "",
@@ -179,7 +179,7 @@ defmodule Pleroma.Web.CommonAPI do
Map.put(
object,
"emoji",
- Formatter.get_emoji_map(full_payload)
+ Map.merge(Formatter.get_emoji_map(full_payload), poll_emoji)
) do
res =
ActivityPub.create(
diff --git a/lib/pleroma/web/common_api/utils.ex b/lib/pleroma/web/common_api/utils.ex
index 2ea997789..cd8483c11 100644
--- a/lib/pleroma/web/common_api/utils.ex
+++ b/lib/pleroma/web/common_api/utils.ex
@@ -102,26 +102,15 @@ defmodule Pleroma.Web.CommonAPI.Utils do
end
end
- def make_poll_data(
- %{"poll" => %{"options" => options, "expires_in" => expires_in}} = data,
- mentions,
- tags
- )
+ def make_poll_data(%{"poll" => %{"options" => options, "expires_in" => expires_in}} = data)
when is_list(options) and is_integer(expires_in) do
- content_type = get_content_type(data["content_type"])
- # XXX: There is probably a more performant/cleaner way to do this
- {poll, {mentions, tags}} =
- Enum.map_reduce(options, {mentions, tags}, fn option, {mentions, tags} ->
- # TODO: Custom emoji
- {option, mentions_merge, tags_merge} = format_input(option, content_type)
- mentions = mentions ++ mentions_merge
- tags = tags ++ tags_merge
-
+ {poll, emoji} =
+ Enum.map_reduce(options, %{}, fn option, emoji ->
{%{
"name" => option,
"type" => "Note",
"replies" => %{"type" => "Collection", "totalItems" => 0}
- }, {mentions, tags}}
+ }, Map.merge(emoji, Formatter.get_emoji_map(option))}
end)
end_time =
@@ -136,11 +125,11 @@ defmodule Pleroma.Web.CommonAPI.Utils do
%{"type" => "Question", "oneOf" => poll, "closed" => end_time}
end
- {poll, mentions, tags}
+ {poll, emoji}
end
- def make_poll_data(_data, mentions, tags) do
- {%{}, mentions, tags}
+ def make_poll_data(_data) do
+ {%{}, %{}}
end
def make_content_html(