Fixes for elasticsearch 8 (#52)
[akkoma] / lib / mix / tasks / pleroma / search.ex
index 25a277f88d1bb374c5181cbcdd4d3a77f5746b36..67aba79db7583eee3b266e19d6127bb736ebf017 100644 (file)
@@ -5,62 +5,19 @@
 defmodule Mix.Tasks.Pleroma.Search do
   use Mix.Task
   import Mix.Pleroma
-  import Ecto.Query
-  alias Pleroma.Activity
-  alias Pleroma.Pagination
 
   @shortdoc "Manages elasticsearch"
 
-  def run(["import_since", d | _rest]) do
+  def run(["import", "activities" | _rest]) do
     start_pleroma()
-    {:ok, since, _} = DateTime.from_iso8601(d)
-
-    from(a in Activity, where: not ilike(a.actor, "%/relay") and a.inserted_at > ^since)
-    |> Activity.with_preloaded_object()
-    |> Activity.with_preloaded_user_actor()
-    |> get_all
-  end
-
-  def run(["import" | _rest]) do
-    start_pleroma()
-
-    from(a in Activity, where: not ilike(a.actor, "%/relay"))
-    |> where([a], fragment("(? ->> 'type'::text) = 'Create'", a.data))
-    |> Activity.with_preloaded_object()
-    |> Activity.with_preloaded_user_actor()
-    |> get_all
-  end
-
-  defp get_all(query, max_id \\ nil) do
-    IO.puts(max_id)
-    params = %{limit: 2000}
-
-    params =
-      if max_id == nil do
-        params
-      else
-        Map.put(params, :max_id, max_id)
-      end
-
-    res =
-      query
-      |> Pagination.fetch_paginated(params)
-
-    if res == [] do
-      :ok
-    else
-      res
-      |> Enum.filter(fn x ->
-        t =
-          x.object
-          |> Map.get(:data, %{})
-          |> Map.get("type", "")
-
-        t == "Note"
-      end)
-      |> Pleroma.Elasticsearch.bulk_post(:activities)
-
-      get_all(query, List.last(res).id)
-    end
+    IO.inspect(Pleroma.Config.get([Pleroma.Search.Elasticsearch.Cluster, :indexes, :activities]))
+
+    IO.inspect(
+      Elasticsearch.Index.Bulk.upload(
+        Pleroma.Search.Elasticsearch.Cluster,
+        "activities",
+        Pleroma.Config.get([Pleroma.Search.Elasticsearch.Cluster, :indexes, :activities])
+      )
+    )
   end
 end