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 /lib/mix/tasks | |
| parent | 0589e9156ac4f77bf158ed65bd352b4725f0ad1c (diff) | |
| download | pleroma-724ed354f25fb83f65dff2fbadd4b5a121fb77d0.tar.gz pleroma-724ed354f25fb83f65dff2fbadd4b5a121fb77d0.zip | |
Ensure only Note objects are set to expire
Diffstat (limited to 'lib/mix/tasks')
| -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) | 
