mirror of
https://akkoma.dev/AkkomaGang/akkoma.git
synced 2024-12-04 18:38:15 +00:00
Rename test, add check for follower collection when delisting
This commit is contained in:
parent
d943c90249
commit
dca6bee2f7
|
@ -10,17 +10,22 @@ defmodule Pleroma.Web.ActivityPub.MRF.HellthreadPolicy do
|
||||||
delist_threshold = Pleroma.Config.get([:mrf_hellthread, :delist_threshold])
|
delist_threshold = Pleroma.Config.get([:mrf_hellthread, :delist_threshold])
|
||||||
follower_collection = User.get_cached_by_ap_id(message["actor"]).follower_address
|
follower_collection = User.get_cached_by_ap_id(message["actor"]).follower_address
|
||||||
|
|
||||||
|
follower_collection? = Enum.member?(message["to"] ++ message["cc"], follower_collection)
|
||||||
|
|
||||||
message =
|
message =
|
||||||
with {:public, recipients} <- get_recipient_count(message) do
|
case recipients = get_recipient_count(message) do
|
||||||
if recipients > delist_threshold and delist_threshold > 0 do
|
{:public, _} when follower_collection? and recipients > delist_threshold ->
|
||||||
message
|
message
|
||||||
|> Map.put("to", [follower_collection])
|
|> Map.put("to", [follower_collection])
|
||||||
|> Map.put("cc", ["https://www.w3.org/ns/activitystreams#Public"])
|
|> Map.put("cc", ["https://www.w3.org/ns/activitystreams#Public"])
|
||||||
else
|
|
||||||
|
{:public, _} when recipients > delist_threshold ->
|
||||||
|
message
|
||||||
|
|> Map.put("to", [])
|
||||||
|
|> Map.put("cc", ["https://www.w3.org/ns/activitystreams#Public"])
|
||||||
|
|
||||||
|
_ ->
|
||||||
message
|
message
|
||||||
end
|
|
||||||
else
|
|
||||||
_ -> message
|
|
||||||
end
|
end
|
||||||
|
|
||||||
{:ok, message}
|
{:ok, message}
|
||||||
|
|
|
@ -41,7 +41,7 @@ defmodule Pleroma.Web.ActivityPub.MRF.HellthreadPolicyTest do
|
||||||
assert "https://www.w3.org/ns/activitystreams#Public" in message["cc"]
|
assert "https://www.w3.org/ns/activitystreams#Public" in message["cc"]
|
||||||
end
|
end
|
||||||
|
|
||||||
test "threshold test", %{message: message} do
|
test "excludes follower collection and public URI from threshold count", %{message: message} do
|
||||||
Pleroma.Config.put([:mrf_hellthread], %{delist_threshold: 0, reject_threshold: 3})
|
Pleroma.Config.put([:mrf_hellthread], %{delist_threshold: 0, reject_threshold: 3})
|
||||||
|
|
||||||
{:ok, _} = filter(message)
|
{:ok, _} = filter(message)
|
||||||
|
|
Loading…
Reference in a new issue