Change module name to FollowbotPolicy
authorMark Felder <feld@feld.me>
Fri, 19 Feb 2021 21:17:33 +0000 (15:17 -0600)
committerMark Felder <feld@feld.me>
Tue, 30 Mar 2021 16:10:44 +0000 (11:10 -0500)
lib/pleroma/web/activity_pub/mrf/followbot_policy.ex [moved from lib/pleroma/web/activity_pub/mrf/follow_bot_policy.ex with 72% similarity]

similarity index 72%
rename from lib/pleroma/web/activity_pub/mrf/follow_bot_policy.ex
rename to lib/pleroma/web/activity_pub/mrf/followbot_policy.ex
index 441ce553e85a7d7fe3a6c3b7a28dad7450dd646a..838d39c884b52f5b7917e8d25f66b568eee3a6e7 100644 (file)
@@ -1,13 +1,11 @@
-defmodule Pleroma.Web.ActivityPub.MRF.FollowBotPolicy do
+defmodule Pleroma.Web.ActivityPub.MRF.FollowbotPolicy do
   @behaviour Pleroma.Web.ActivityPub.MRF
-  alias Pleroma.Activity.Queries
+  alias Pleroma.Activity
   alias Pleroma.Config
-  alias Pleroma.Repo
   alias Pleroma.User
   alias Pleroma.Web.CommonAPI
-  require Logger
 
-  import Ecto.Query
+  require Logger
 
   @impl true
   def filter(message) do
@@ -46,7 +44,8 @@ defmodule Pleroma.Web.ActivityPub.MRF.FollowBotPolicy do
         with false <- User.following?(follower, user),
              false <- User.locked?(user),
              false <- (user.bio || "") |> String.downcase() |> String.contains?("nobot"),
-             false <- outstanding_follow_request_since?(follower, user, since_thirty_days_ago) do
+             false <-
+               Activity.follow_requests_outstanding_since?(follower, user, since_thirty_days_ago) do
           Logger.info(
             "#{__MODULE__}: Follow request from #{follower.nickname} to #{user.nickname}"
           )
@@ -59,20 +58,6 @@ defmodule Pleroma.Web.ActivityPub.MRF.FollowBotPolicy do
     {:ok, message}
   end
 
-  defp outstanding_follow_request_since?(
-         %User{ap_id: follower_id},
-         %User{ap_id: followee_id},
-         since_datetime
-       ) do
-    followee_id
-    |> Queries.by_object_id()
-    |> Queries.by_type("Follow")
-    |> where([a], a.inserted_at > ^since_datetime)
-    |> where([a], fragment("? ->> 'state' != 'accept'", a.data))
-    |> where([a], a.actor == ^follower_id)
-    |> Repo.exists?()
-  end
-
   @impl true
   def describe do
     {:ok, %{}}