extend reject MRF to check if originating instance is blocked
[akkoma] / lib / pleroma / web / activity_pub / mrf / no_placeholder_text_policy.ex
index f30fee0d506068cfdaa588c2c03515cdcb542ad1..f25bb4efd537e016fba06b835a18e5276bbd0a62 100644 (file)
@@ -1,30 +1,28 @@
 # Pleroma: A lightweight social networking server
-# Copyright © 2019 Pleroma Authors <https://pleroma.social/>
+# Copyright © 2017-2021 Pleroma Authors <https://pleroma.social/>
 # SPDX-License-Identifier: AGPL-3.0-only
 
 defmodule Pleroma.Web.ActivityPub.MRF.NoPlaceholderTextPolicy do
   @moduledoc "Ensure no content placeholder is present (such as the dot from mastodon)"
-  @behaviour Pleroma.Web.ActivityPub.MRF
+  @behaviour Pleroma.Web.ActivityPub.MRF.Policy
+
+  @impl true
+  def history_awareness, do: :auto
 
   @impl true
   def filter(
         %{
-          "type" => "Create",
-          "object" => %{"content" => content, "attachment" => _attachment} = child_object
+          "type" => type,
+          "object" => %{"content" => content, "attachment" => _} = _child_object
         } = object
       )
-      when content in [".", "<p>.</p>"] do
-    child_object =
-      child_object
-      |> Map.put("content", "")
-
-    object =
-      object
-      |> Map.put("object", child_object)
-
-    {:ok, object}
+      when type in ["Create", "Update"] and content in [".", "<p>.</p>"] do
+    {:ok, put_in(object, ["object", "content"], "")}
   end
 
   @impl true
   def filter(object), do: {:ok, object}
+
+  @impl true
+  def describe, do: {:ok, %{}}
 end