diff options
author | csaurus <csaurus@mailbox.org> | 2018-05-13 15:33:59 -0400 |
---|---|---|
committer | csaurus <csaurus@mailbox.org> | 2018-05-13 15:33:59 -0400 |
commit | 9aabff48835d55cf284229298ad86c07fa1fce30 (patch) | |
tree | d90d5d9066041d90f532dae566fbb335e9319f7e | |
parent | c8d418acddd72e628caad9a6b11ff6debd3386e9 (diff) | |
download | pleroma-9aabff48835d55cf284229298ad86c07fa1fce30.tar.gz |
Fix tests.
-rw-r--r-- | lib/pleroma/web/activity_pub/activity_pub.ex | 21 | ||||
-rw-r--r-- | lib/pleroma/web/mastodon_api/views/status_view.ex | 1 |
2 files changed, 14 insertions, 8 deletions
diff --git a/lib/pleroma/web/activity_pub/activity_pub.ex b/lib/pleroma/web/activity_pub/activity_pub.ex index d5d00d4a2..4b2ecfa3c 100644 --- a/lib/pleroma/web/activity_pub/activity_pub.ex +++ b/lib/pleroma/web/activity_pub/activity_pub.ex @@ -40,18 +40,23 @@ defmodule Pleroma.Web.ActivityPub.ActivityPub do end def stream_out(activity) do + public = "https://www.w3.org/ns/activitystreams#Public" + if activity.data["type"] in ["Create", "Announce"] do Pleroma.Web.Streamer.stream("user", activity) - visibility = Pleroma.Web.MastodonAPI.StatusView.get_visibility(activity.data["object"]) + if Enum.member?(activity.data["to"], public) do + Pleroma.Web.Streamer.stream("public", activity) - case visibility do - "public" -> - Pleroma.Web.Streamer.stream("public", activity) - if activity.local, do: Pleroma.Web.Streamer.stream("public:local", activity) - - "direct" -> - Pleroma.Web.Streamer.stream("direct", activity) + if activity.local do + Pleroma.Web.Streamer.stream("public:local", activity) + end + else + if !Enum.member?(activity.data["cc"] || [], public) && + !Enum.member?( + activity.data["to"], + User.get_by_ap_id(activity.data["actor"]).follower_address + ), do: Pleroma.Web.Streamer.stream("direct", activity) end end end diff --git a/lib/pleroma/web/mastodon_api/views/status_view.ex b/lib/pleroma/web/mastodon_api/views/status_view.ex index 5c6fd05f3..301234412 100644 --- a/lib/pleroma/web/mastodon_api/views/status_view.ex +++ b/lib/pleroma/web/mastodon_api/views/status_view.ex @@ -195,6 +195,7 @@ defmodule Pleroma.Web.MastodonAPI.StatusView do cond do public in to -> "public" public in cc -> "unlisted" + # this should use the sql for the object's activity Enum.any?(to, &String.contains?(&1, "/followers")) -> "private" true -> "direct" end |