CommonAPI: Visibility refactor.
This commit is contained in:
parent
cbb3451023
commit
7a92e701b9
1 changed files with 7 additions and 13 deletions
|
@ -116,21 +116,16 @@ defmodule Pleroma.Web.CommonAPI do
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
def get_visibility(%{"visibility" => visibility})
|
def get_visibility(%{"visibility" => visibility}, in_reply_to)
|
||||||
when visibility in ~w{public unlisted private direct},
|
when visibility in ~w{public unlisted private direct},
|
||||||
do: visibility
|
do: {visibility, get_replied_to_visibility(in_reply_to)}
|
||||||
|
|
||||||
def get_visibility(%{"in_reply_to_status_id" => status_id}) when not is_nil(status_id) do
|
def get_visibility(_, in_reply_to) when not is_nil(in_reply_to) do
|
||||||
case get_replied_to_activity(status_id) do
|
visibility = get_replied_to_visibility(in_reply_to)
|
||||||
nil ->
|
{visibility, visibility}
|
||||||
"public"
|
|
||||||
|
|
||||||
in_reply_to ->
|
|
||||||
get_replied_to_visibility(in_reply_to)
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
|
|
||||||
def get_visibility(_), do: "public"
|
def get_visibility(_, in_reply_to), do: {"public", get_replied_to_visibility(in_reply_to)}
|
||||||
|
|
||||||
def get_replied_to_visibility(nil), do: nil
|
def get_replied_to_visibility(nil), do: nil
|
||||||
|
|
||||||
|
@ -145,9 +140,8 @@ defmodule Pleroma.Web.CommonAPI do
|
||||||
|
|
||||||
with status <- String.trim(status),
|
with status <- String.trim(status),
|
||||||
attachments <- attachments_from_ids(data),
|
attachments <- attachments_from_ids(data),
|
||||||
visibility <- get_visibility(data),
|
|
||||||
in_reply_to <- get_replied_to_activity(data["in_reply_to_status_id"]),
|
in_reply_to <- get_replied_to_activity(data["in_reply_to_status_id"]),
|
||||||
in_reply_to_visibility <- get_replied_to_visibility(in_reply_to),
|
{visibility, in_reply_to_visibility} <- get_visibility(data, in_reply_to),
|
||||||
{_, false} <-
|
{_, false} <-
|
||||||
{:private_to_public, in_reply_to_visibility == "direct" && visibility != "direct"},
|
{:private_to_public, in_reply_to_visibility == "direct" && visibility != "direct"},
|
||||||
{content_html, mentions, tags} <-
|
{content_html, mentions, tags} <-
|
||||||
|
|
Loading…
Reference in a new issue