This commit is contained in:
red 2025-07-04 11:41:00 -04:00
parent 3c40b1a9ef
commit a99ba09f1c

View file

@ -0,0 +1,50 @@
defmodule Pleroma.Web.ActivityPub.MRF.YeehawPolicy do
@behaviour Pleroma.Web.ActivityPub.MRF.Policy
require Logger
@impl true
def filter(
%{
"type" => "Create",
"object" => %{"type" => "Note", "content" => _content} = object,
"actor" => actor
} = activity
) do
actor_info = URI.parse(actor)
local_instance = Pleroma.Config.get([Pleroma.Web.Endpoint, :url, :host])
try do
if actor_info.host == local_instance do
{:ok,
Map.put(
activity,
"object",
object |> update_in(["content"], fn x -> x <> "\n\n- Yeehaw" end)
)}
else
{:ok, activity}
end
rescue
err ->
Logger.warning(inspect(err))
{:ok, activity}
end
end
def filter(activity), do: {:ok, activity}
@impl true
def describe do
{:ok, %{}}
end
@impl true
def config_description do
%{
key: :mrf_yeehawpolicy,
related_policy: "Pleroma.Web.ActivityPub.MRF.YeeHawPolicy",
label: "YeeHaw at everyone",
description: "YeeHaw at everyone on the local instance"
}
end
end