diff options
author | Mark Felder <feld@feld.me> | 2024-09-30 14:02:41 -0400 |
---|---|---|
committer | Mark Felder <feld@feld.me> | 2024-09-30 14:02:41 -0400 |
commit | 4b3f604f9529c9ced23f747cb6f6d82fedfadab0 (patch) | |
tree | 60317f67b78fb8ad8bca53ff2cd59f926584f507 /lib | |
parent | c077a14ce1343f5515fa11938df7d808f23a566c (diff) | |
download | pleroma-4b3f604f9529c9ced23f747cb6f6d82fedfadab0.tar.gz pleroma-4b3f604f9529c9ced23f747cb6f6d82fedfadab0.zip |
Skip refetching poll results if the object's updated_at is newer than the poll closed timestamp
Diffstat (limited to 'lib')
-rw-r--r-- | lib/pleroma/workers/poll_worker.ex | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/lib/pleroma/workers/poll_worker.ex b/lib/pleroma/workers/poll_worker.ex index 0d2d67326..a61c5eac1 100644 --- 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 |