diff options
author | lain <lain@soykaf.club> | 2020-08-09 10:53:58 +0000 |
---|---|---|
committer | lain <lain@soykaf.club> | 2020-08-09 10:53:58 +0000 |
commit | d0fc48ea67d90bf01bd546088b114362592d5eb0 (patch) | |
tree | c4c56684cbe680fc0c024e028618dc291520bd74 /lib/mix | |
parent | cb376c4c4ca6491f2b58a9a916986998312640f5 (diff) | |
parent | ad29a4f2cf4496aaa9463e11d94b35364e9cddae (diff) | |
download | pleroma-d0fc48ea67d90bf01bd546088b114362592d5eb0.tar.gz |
Merge branch 'develop' into 'feat/floki-fast-html-2'
# Conflicts:
# config/config.exs
Diffstat (limited to 'lib/mix')
-rw-r--r-- | lib/mix/tasks/pleroma/database.ex | 24 |
1 files changed, 20 insertions, 4 deletions
diff --git a/lib/mix/tasks/pleroma/database.ex b/lib/mix/tasks/pleroma/database.ex index 82e2abdcb..d57e59b11 100644 --- a/lib/mix/tasks/pleroma/database.ex +++ b/lib/mix/tasks/pleroma/database.ex @@ -10,6 +10,7 @@ defmodule Mix.Tasks.Pleroma.Database do alias Pleroma.User require Logger require Pleroma.Constants + import Ecto.Query import Mix.Pleroma use Mix.Task @@ -53,8 +54,6 @@ defmodule Mix.Tasks.Pleroma.Database do end def run(["prune_objects" | args]) do - import Ecto.Query - {options, [], []} = OptionParser.parse( args, @@ -94,8 +93,6 @@ defmodule Mix.Tasks.Pleroma.Database do end def run(["fix_likes_collections"]) do - import Ecto.Query - start_pleroma() from(object in Object, @@ -130,4 +127,23 @@ defmodule Mix.Tasks.Pleroma.Database do Maintenance.vacuum(args) end + + def run(["ensure_expiration"]) do + start_pleroma() + days = Pleroma.Config.get([:mrf_activity_expiration, :days], 365) + + Pleroma.Activity + |> join(:left, [a], u in assoc(a, :expiration)) + |> where(local: true) + |> where([a, u], is_nil(u)) + |> 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) + |> Stream.run() + end end |