end
end
+ def to_for_user_and_mentions(_user, _mentions, _inReplyTo, _), do: {[], []}
+
+ def bcc_for_list(user, {:list, list_id}) do
+ list = Pleroma.List.get(list_id, user)
+ [list.ap_id]
+ end
+
+ def bcc_for_list(_, _), do: []
+
def make_poll_data(%{"poll" => %{"options" => options, "expires_in" => expires_in}} = data)
- when is_list(options) and is_integer(expires_in) do
+ when is_list(options) do
%{max_expiration: max_expiration, min_expiration: min_expiration} =
limits = Pleroma.Config.get([:instance, :poll_limits])
# XXX: There is probably a cleaner way of doing this
try do
+ # In some cases mastofe sends out strings instead of integers
+ expires_in = if is_binary(expires_in), do: String.to_integer(expires_in), else: expires_in
+
if Enum.count(options) > limits.max_options do
raise ArgumentError, message: "Poll can't contain more than #{limits.max_options} options"
end
end
end
- def make_poll_data(%{"poll" => _}) do
+ def make_poll_data(%{"poll" => poll}) when is_map(poll) do
"Invalid poll"
end
{:error, "No such conversation"}
end
end
+
+ def make_answer_data(%User{ap_id: ap_id}, object, name) do
+ %{
+ "type" => "Answer",
+ "actor" => ap_id,
+ "cc" => [object.data["actor"]],
+ "to" => [],
+ "name" => name,
+ "inReplyTo" => object.data["id"]
+ }
+ end
end