From: lain <lain@soykaf.club>
Date: Sun, 18 Feb 2018 13:07:13 +0000 (+0100)
Subject: Transmogrify outgoing nsfw.
X-Git-Url: https://git.squeep.com/?a=commitdiff_plain;h=20e6190ead59eb9bd83887b8239cab73c17a961b;p=akkoma

Transmogrify outgoing nsfw.
---

diff --git a/lib/pleroma/web/activity_pub/transmogrifier.ex b/lib/pleroma/web/activity_pub/transmogrifier.ex
index 17cd3b1c2..fc04cc9a1 100644
--- a/lib/pleroma/web/activity_pub/transmogrifier.ex
+++ b/lib/pleroma/web/activity_pub/transmogrifier.ex
@@ -100,6 +100,7 @@ defmodule Pleroma.Web.ActivityPub.Transmogrifier do
   """
   def prepare_outgoing(%{"type" => "Create", "object" => %{"type" => "Note"} = object} = data) do
     object = object
+    |> set_sensitive
     |> add_hashtags
     |> add_mention_tags
     |> add_attributed_to
@@ -144,6 +145,11 @@ defmodule Pleroma.Web.ActivityPub.Transmogrifier do
     Map.put(object, "conversation", object["context"])
   end
 
+  def set_sensitive(object) do
+    tags = object["tag"] || []
+    Map.put(object, "sensitive", "nsfw" in tags)
+  end
+
   def add_attributed_to(object) do
     attributedTo = object["attributedTo"] || object["actor"]
 
diff --git a/test/web/activity_pub/transmogrifier_test.exs b/test/web/activity_pub/transmogrifier_test.exs
index ec608a86a..6271e200e 100644
--- a/test/web/activity_pub/transmogrifier_test.exs
+++ b/test/web/activity_pub/transmogrifier_test.exs
@@ -120,6 +120,15 @@ defmodule Pleroma.Web.ActivityPub.TransmogrifierTest do
       assert Enum.member?(object["tag"], expected_mention)
     end
 
+    test "it adds the sensitive property" do
+      user = insert(:user)
+
+      {:ok, activity} = CommonAPI.post(user, %{"status" => "#nsfw hey"})
+      {:ok, modified} = Transmogrifier.prepare_outgoing(activity.data)
+
+      assert modified["object"]["sensitive"]
+    end
+
     test "it adds the json-ld context and the conversation property" do
       user = insert(:user)