mrf: add no placeholder-text policy, strips pointless "." content from posts with...
authorWilliam Pitcock <nenolod@dereferenced.org>
Mon, 14 Jan 2019 05:31:57 +0000 (05:31 +0000)
committerWilliam Pitcock <nenolod@dereferenced.org>
Mon, 14 Jan 2019 05:42:38 +0000 (05:42 +0000)
lib/pleroma/web/activity_pub/mrf/no_placeholder_text_policy.ex [new file with mode: 0644]

diff --git a/lib/pleroma/web/activity_pub/mrf/no_placeholder_text_policy.ex b/lib/pleroma/web/activity_pub/mrf/no_placeholder_text_policy.ex
new file mode 100644 (file)
index 0000000..0814560
--- /dev/null
@@ -0,0 +1,29 @@
+# Pleroma: A lightweight social networking server
+# Copyright © 2019 Pleroma Authors <https://pleroma.social/>
+# SPDX-License-Identifier: AGPL-3.0-only
+
+defmodule Pleroma.Web.ActivityPub.MRF.NoPlaceholderTextPolicy do
+  @behaviour Pleroma.Web.ActivityPub.MRF
+
+  @impl true
+  def filter(
+        %{
+          "type" => "Create",
+          "object" => %{"content" => content, "attachment" => _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}
+  end
+
+  @impl true
+  def filter(object), do: {:ok, object}
+end