Implement large thread filter

This commit is contained in:
Karen Konou 2018-12-22 23:18:31 +01:00
parent 61a88a6757
commit 92362e1e22
2 changed files with 17 additions and 0 deletions

View File

@ -163,6 +163,8 @@ config :pleroma, :mrf_rejectnonpublic,
allow_followersonly: false, allow_followersonly: false,
allow_direct: false allow_direct: false
config :pleroma, :mrf_hellthreadmitigation, threshold: 10
config :pleroma, :mrf_simple, config :pleroma, :mrf_simple,
media_removal: [], media_removal: [],
media_nsfw: [], media_nsfw: [],

View File

@ -0,0 +1,15 @@
defmodule Pleroma.Web.ActivityPub.MRF.HellthreadPolicy do
@behaviour Pleroma.Web.ActivityPub.MRF
@impl true
def filter(object) do
policy = Pleroma.Config.get(:mrf_hellthreadmitigation)
if (length(object["to"]) + length(object["cc"])) > Keyword.get(policy, :threshold) do
{:reject, nil}
else
{:ok, object}
end
end
end