aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorcsaurus <csaurus@mailbox.org>2018-05-13 15:33:59 -0400
committercsaurus <csaurus@mailbox.org>2018-05-13 15:33:59 -0400
commit9aabff48835d55cf284229298ad86c07fa1fce30 (patch)
treed90d5d9066041d90f532dae566fbb335e9319f7e
parentc8d418acddd72e628caad9a6b11ff6debd3386e9 (diff)
downloadpleroma-9aabff48835d55cf284229298ad86c07fa1fce30.tar.gz
Fix tests.
-rw-r--r--lib/pleroma/web/activity_pub/activity_pub.ex21
-rw-r--r--lib/pleroma/web/mastodon_api/views/status_view.ex1
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