diff options
author | Mark Felder <feld@FreeBSD.org> | 2020-08-11 11:28:22 -0500 |
---|---|---|
committer | Mark Felder <feld@FreeBSD.org> | 2020-08-11 11:28:22 -0500 |
commit | 724ed354f25fb83f65dff2fbadd4b5a121fb77d0 (patch) | |
tree | 54c50368ce4c1e07c10c7fcc0b947c0ea6938ffe | |
parent | 0589e9156ac4f77bf158ed65bd352b4725f0ad1c (diff) | |
download | pleroma-724ed354f25fb83f65dff2fbadd4b5a121fb77d0.tar.gz |
Ensure only Note objects are set to expire
-rw-r--r-- | lib/mix/tasks/pleroma/database.ex | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/lib/mix/tasks/pleroma/database.ex b/lib/mix/tasks/pleroma/database.ex index b2dc3d0f3..7d8f00b08 100644 --- a/lib/mix/tasks/pleroma/database.ex +++ b/lib/mix/tasks/pleroma/database.ex @@ -134,14 +134,23 @@ defmodule Mix.Tasks.Pleroma.Database do Pleroma.Activity |> join(:left, [a], u in assoc(a, :expiration)) + |> join(:inner, [a, _u], o in Object, + on: + fragment( + "(?->>'id') = COALESCE((?)->'object'->> 'id', (?)->>'object')", + o.data, + a.data, + a.data + ) + ) |> where(local: true) |> where([a, u], is_nil(u)) |> where([a], fragment("(? ->> 'type'::text) = 'Create'", a.data)) + |> where([_a, _u, o], fragment("?->>'type' = 'Note'", o.data)) |> Pleroma.RepoStreamer.chunk_stream(100) |> Stream.each(fn activities -> Enum.each(activities, fn activity -> expires_at = Timex.shift(activity.inserted_at, days: days) - Pleroma.ActivityExpiration.create(activity, expires_at, false) end) end) |