Skip posts in indexer where publish date is nil
[akkoma] / lib / pleroma / search / meilisearch.ex
index 21b44de86673ed1c881b2979cad559c7e52fc5a7..c36b8f7510275d6e6d7fbcf532cc47b81be6aaf2 100644 (file)
@@ -7,11 +7,13 @@ defmodule Pleroma.Search.Meilisearch do
   import Pleroma.Search.DatabaseSearch
   import Ecto.Query
 
+  @behaviour Pleroma.Search.SearchBackend
+
   defp meili_headers do
     private_key = Pleroma.Config.get([Pleroma.Search.Meilisearch, :private_key])
 
     [{"Content-Type", "application/json"}] ++
-      if is_nil(private_key), do: [], else: [{"X-Meili-API-Key", private_key}]
+      if is_nil(private_key), do: [], else: [{"Authorization", "Bearer #{private_key}"}]
   end
 
   def meili_get(path) do
@@ -126,7 +128,7 @@ defmodule Pleroma.Search.Meilisearch do
           trimmed
         end
 
-      if String.length(content) > 1 do
+      if String.length(content) > 1 and not is_nil(data["published"]) do
         {:ok, published, _} = DateTime.from_iso8601(data["published"])
 
         %{
@@ -139,6 +141,7 @@ defmodule Pleroma.Search.Meilisearch do
     end
   end
 
+  @impl true
   def add_to_index(activity) do
     maybe_search_data = object_to_search_data(activity.object)
 
@@ -150,7 +153,7 @@ defmodule Pleroma.Search.Meilisearch do
         )
 
       with {:ok, res} <- result,
-           true <- Map.has_key?(res, "updateId") do
+           true <- Map.has_key?(res, "taskUid") do
         # Do nothing
       else
         _ ->
@@ -159,6 +162,7 @@ defmodule Pleroma.Search.Meilisearch do
     end
   end
 
+  @impl true
   def remove_from_index(object) do
     meili_delete!("/indexes/objects/documents/#{object.id}")
   end