commit: 94daa3e8c1ec42f40214dc13f061f4319764f715
parent 82724f6664c05e746eb241fb60aefd9a931b372d
Author: Mark Felder <feld@feld.me>
Date: Sat, 9 Dec 2023 18:21:00 -0500
Revert "Remove unnecessary forced refresh of user"
This reverts commit 97cf78f63d312d0475ac8908d0b093cb5eff18d5.
Diffstat:
1 file changed, 16 insertions(+), 4 deletions(-)
diff --git a/lib/pleroma/user.ex b/lib/pleroma/user.ex
@@ -1037,6 +1037,16 @@ defmodule Pleroma.User do
defp maybe_send_registration_email(_), do: {:ok, :noop}
+ def needs_update?(%User{local: true}), do: false
+
+ def needs_update?(%User{local: false, last_refreshed_at: nil}), do: true
+
+ def needs_update?(%User{local: false} = user) do
+ NaiveDateTime.diff(NaiveDateTime.utc_now(), user.last_refreshed_at) >= 86_400
+ end
+
+ def needs_update?(_), do: true
+
@spec maybe_direct_follow(User.t(), User.t()) :: {:ok, User.t()} | {:error, String.t()}
# "Locked" (self-locked) users demand explicit authorization of follow requests
@@ -2049,13 +2059,15 @@ defmodule Pleroma.User do
def fetch_by_ap_id(ap_id), do: ActivityPub.make_user_from_ap_id(ap_id)
def get_or_fetch_by_ap_id(ap_id) do
- user = get_cached_by_ap_id(ap_id) || fetch_by_ap_id(ap_id)
+ cached_user = get_cached_by_ap_id(ap_id)
+
+ maybe_fetched_user = needs_update?(cached_user) && fetch_by_ap_id(ap_id)
- case user do
- %User{} = user ->
+ case {cached_user, maybe_fetched_user} do
+ {_, {:ok, %User{} = user}} ->
{:ok, user}
- {:ok, %User{} = user} ->
+ {%User{} = user, _} ->
{:ok, user}
_ ->