diff options
author | kaniini <ariadne@dereferenced.org> | 2019-07-15 13:00:33 +0000 |
---|---|---|
committer | kaniini <ariadne@dereferenced.org> | 2019-07-15 13:00:33 +0000 |
commit | d725ccfd3adce35c91c9d55414f47022bf0d67ed (patch) | |
tree | 38361610903bd6034f6a66dcd9e747e187d328d9 /lib/pleroma/web/common_api/common_api.ex | |
parent | 46ef8f021635c630bcd6973e6fbb7c58bcafb6bf (diff) | |
parent | de13c9bb8fc08b12d9694f63f92935ba39a51118 (diff) | |
download | pleroma-d725ccfd3adce35c91c9d55414f47022bf0d67ed.tar.gz |
Merge branch 'feature/addressable-lists' into 'develop'
[#802] Add addressable lists
See merge request pleroma/pleroma!1113
Diffstat (limited to 'lib/pleroma/web/common_api/common_api.ex')
-rw-r--r-- | lib/pleroma/web/common_api/common_api.ex | 30 |
1 files changed, 17 insertions, 13 deletions
diff --git a/lib/pleroma/web/common_api/common_api.ex b/lib/pleroma/web/common_api/common_api.ex index 949baa3b0..44669b228 100644 --- a/lib/pleroma/web/common_api/common_api.ex +++ b/lib/pleroma/web/common_api/common_api.ex @@ -176,6 +176,11 @@ defmodule Pleroma.Web.CommonAPI do when visibility in ~w{public unlisted private direct}, do: {visibility, get_replied_to_visibility(in_reply_to)} + def get_visibility(%{"visibility" => "list:" <> list_id}, in_reply_to) do + visibility = {:list, String.to_integer(list_id)} + {visibility, get_replied_to_visibility(in_reply_to)} + end + def get_visibility(_, in_reply_to) when not is_nil(in_reply_to) do visibility = get_replied_to_visibility(in_reply_to) {visibility, visibility} @@ -236,19 +241,18 @@ defmodule Pleroma.Web.CommonAPI do "emoji", Map.merge(Formatter.get_emoji_map(full_payload), poll_emoji) ) do - res = - ActivityPub.create( - %{ - to: to, - actor: user, - context: context, - object: object, - additional: %{"cc" => cc, "directMessage" => visibility == "direct"} - }, - Pleroma.Web.ControllerHelper.truthy_param?(data["preview"]) || false - ) - - res + preview? = Pleroma.Web.ControllerHelper.truthy_param?(data["preview"]) || false + direct? = visibility == "direct" + + %{ + to: to, + actor: user, + context: context, + object: object, + additional: %{"cc" => cc, "directMessage" => direct?} + } + |> maybe_add_list_data(user, visibility) + |> ActivityPub.create(preview?) else {:private_to_public, true} -> {:error, dgettext("errors", "The message visibility must be direct")} |