diff options
author | Lain Soykaf <lain@lain.com> | 2024-03-17 16:57:45 +0400 |
---|---|---|
committer | Lain Soykaf <lain@lain.com> | 2024-03-17 16:57:45 +0400 |
commit | caf855cf9cb9a5cadd2519237c9e7916007f4850 (patch) | |
tree | fb122be9531219c39fea93f59eac37d1318c38f7 /lib | |
parent | 0450da88b6f10f2eb61ecb1758f9f4b4e95182c8 (diff) | |
download | pleroma-caf855cf9cb9a5cadd2519237c9e7916007f4850.tar.gz pleroma-caf855cf9cb9a5cadd2519237c9e7916007f4850.zip |
ActivityPub.Publisher: Don't try federating if a user doesn't have an inbox.
Diffstat (limited to 'lib')
-rw-r--r-- | lib/pleroma/web/activity_pub/publisher.ex | 24 |
1 files changed, 9 insertions, 15 deletions
diff --git a/lib/pleroma/web/activity_pub/publisher.ex b/lib/pleroma/web/activity_pub/publisher.ex index 792c6a1c5..a42b4844e 100644 --- a/lib/pleroma/web/activity_pub/publisher.ex +++ b/lib/pleroma/web/activity_pub/publisher.ex @@ -158,24 +158,18 @@ defmodule Pleroma.Web.ActivityPub.Publisher do end end - defp should_federate?(inbox, public) do - cond do - is_nil(inbox) -> - false + def should_federate?(nil, _), do: false + def should_federate?(_, true), do: true - public -> - true + def should_federate?(inbox, _) do + %{host: host} = URI.parse(inbox) - true -> - %{host: host} = URI.parse(inbox) + quarantined_instances = + Config.get([:instance, :quarantined_instances], []) + |> Pleroma.Web.ActivityPub.MRF.instance_list_from_tuples() + |> Pleroma.Web.ActivityPub.MRF.subdomains_regex() - quarantined_instances = - Config.get([:instance, :quarantined_instances], []) - |> Pleroma.Web.ActivityPub.MRF.instance_list_from_tuples() - |> Pleroma.Web.ActivityPub.MRF.subdomains_regex() - - !Pleroma.Web.ActivityPub.MRF.subdomain_match?(quarantined_instances, host) - end + !Pleroma.Web.ActivityPub.MRF.subdomain_match?(quarantined_instances, host) end @spec recipients(User.t(), Activity.t()) :: [[User.t()]] |