aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/mix/tasks/pleroma/conversations.ex23
-rw-r--r--lib/pleroma/conversation.ex11
2 files changed, 30 insertions, 4 deletions
diff --git a/lib/mix/tasks/pleroma/conversations.ex b/lib/mix/tasks/pleroma/conversations.ex
new file mode 100644
index 000000000..125d8851a
--- /dev/null
+++ b/lib/mix/tasks/pleroma/conversations.ex
@@ -0,0 +1,23 @@
+# Pleroma: A lightweight social networking server
+# Copyright © 2017-2018 Pleroma Authors <https://pleroma.social/>
+# SPDX-License-Identifier: AGPL-3.0-only
+
+defmodule Mix.Tasks.Pleroma.Conversations do
+ use Mix.Task
+ alias Mix.Tasks.Pleroma.Common
+ alias Pleroma.Conversation
+
+ @shortdoc "Manages Pleroma users"
+ @moduledoc """
+ Manages Pleroma conversations.
+
+ ## Create a conversation for all existing DMs. Can be safely re-run.
+
+ mix pleroma.conversations bump_all
+
+ """
+ def run(["bump_all"]) do
+ Common.start_pleroma()
+ Conversation.bump_for_all_activities()
+ end
+end
diff --git a/lib/pleroma/conversation.ex b/lib/pleroma/conversation.ex
index aa73edd75..10c2403e8 100644
--- a/lib/pleroma/conversation.ex
+++ b/lib/pleroma/conversation.ex
@@ -81,9 +81,12 @@ defmodule Pleroma.Conversation do
Pleroma.Web.ActivityPub.ActivityPub.fetch_direct_messages_query()
|> Repo.stream()
- Repo.transaction(fn ->
- stream
- |> Enum.each(&create_or_bump_for/1)
- end)
+ Repo.transaction(
+ fn ->
+ stream
+ |> Enum.each(&create_or_bump_for/1)
+ end,
+ timeout: :infinity
+ )
end
end