aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorlain <lain@soykaf.club>2019-05-08 18:09:07 +0200
committerlain <lain@soykaf.club>2019-05-08 18:09:07 +0200
commit6d19bb4eae43270099a68f749519ba0f323da01a (patch)
tree3a9466137298d0c25f5bbb436eec7a9079c99711
parenta4598b5e8bc640ffc1a052438e21f3573ff837ee (diff)
downloadpleroma-6d19bb4eae43270099a68f749519ba0f323da01a.tar.gz
Conversations: Add mix task to 'import' old DMs.
-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