Conversations: Add mix task to 'import' old DMs.
authorlain <lain@soykaf.club>
Wed, 8 May 2019 16:09:07 +0000 (18:09 +0200)
committerlain <lain@soykaf.club>
Wed, 8 May 2019 16:09:07 +0000 (18:09 +0200)
lib/mix/tasks/pleroma/conversations.ex [new file with mode: 0644]
lib/pleroma/conversation.ex

diff --git a/lib/mix/tasks/pleroma/conversations.ex b/lib/mix/tasks/pleroma/conversations.ex
new file mode 100644 (file)
index 0000000..125d885
--- /dev/null
@@ -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
index aa73edd75574876190b0a183bc0cbc5ed48b5f1b..10c2403e8eef424eb77480084c8a0be052604a38 100644 (file)
@@ -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