commit: 4b3f604f9529c9ced23f747cb6f6d82fedfadab0
parent c077a14ce1343f5515fa11938df7d808f23a566c
Author: Mark Felder <feld@feld.me>
Date: Mon, 30 Sep 2024 14:02:41 -0400
Skip refetching poll results if the object's updated_at is newer than the poll closed timestamp
Diffstat:
1 file changed, 3 insertions(+), 0 deletions(-)
diff --git a/lib/pleroma/workers/poll_worker.ex b/lib/pleroma/workers/poll_worker.ex
@@ -32,6 +32,8 @@ defmodule Pleroma.Workers.PollWorker do
def perform(%Job{args: %{"op" => "refresh", "activity_id" => activity_id}}) do
with {_, %Activity{object: object}} <-
{:activity, Activity.get_by_id_with_object(activity_id)},
+ {:ok, naive_closed} <- NaiveDateTime.from_iso8601(object.data["closed"]),
+ {_, :lt} <- {:closed_compare, NaiveDateTime.compare(object.updated_at, naive_closed)},
{_, {:ok, _object}} <- {:refetch, Fetcher.refetch_object(object)} do
stream_update(activity_id)
@@ -39,6 +41,7 @@ defmodule Pleroma.Workers.PollWorker do
else
{:activity, nil} -> {:cancel, :poll_activity_not_found}
{:refetch, _} = e -> {:cancel, e}
+ {:closed_compare, _} -> {:cancel, :poll_finalized}
e -> {:error, e}
end
end