1 defmodule Pleroma.Web.ActivityPub.MRF.AutoUntaggerPolicy do
2 @moduledoc "Automatically untags all local users from posts originating from specified instances"
3 @behaviour Pleroma.Web.ActivityPub.MRF.Policy
5 require Pleroma.Constants
19 local = Config.get([Pleroma.Web.Endpoint, :url, :host])
20 if URI.parse(actor).authority in Config.get([:mrf_auto_untagger, :domains]) do
23 |> Map.put("to", Enum.filter(to, fn x -> URI.parse(x).authority != local end))
24 |> Map.put("cc", Enum.filter(cc, fn x -> URI.parse(x).authority != local end))
25 |> Map.put("tag", Enum.filter(object["tag"], fn x -> URI.parse(x["href"]).authority != local end))
29 |> Map.put("to", Enum.filter(to, fn x -> URI.parse(x).authority != local end))
30 |> Map.put("cc", Enum.filter(cc, fn x -> URI.parse(x).authority != local end))
31 |> Map.put("object", object)
40 def filter(message) do
45 def describe, do: {:ok, %{}}
48 def config_description do
50 key: :mrf_auto_untagger,
51 related_policy: "Pleroma.Web.ActivityPub.MRF.AutoUntaggerPolicy",
52 label: "Autountagger policy",
53 description: "Automatically untags all local users from posts originating from specified instances",
57 type: {:list, :string},
58 label: "List of affected instance domains",
59 suggestions: ["freespeechextremist.com"]