Page MenuHomePhorge

No OneTemporary

Authored By
Unknown
Size
1 KB
Referenced Files
None
Subscribers
None
diff --git a/lib/pleroma/search.ex b/lib/pleroma/search.ex
index fd0218cb8..b60ca3d05 100644
--- a/lib/pleroma/search.ex
+++ b/lib/pleroma/search.ex
@@ -1,21 +1,38 @@
defmodule Pleroma.Search do
+ alias Pleroma.Activity
+ alias Pleroma.Object
alias Pleroma.Workers.SearchIndexingWorker
- def add_to_index(%Pleroma.Activity{id: activity_id}) do
- SearchIndexingWorker.enqueue("add_to_index", %{"activity" => activity_id})
+ @spec add_to_index(Activity.t()) :: :ok | :error
+ def add_to_index(%Pleroma.Activity{id: activity_id} = activity) do
+ with true <- indexable?(activity),
+ {:ok, %Oban.Job{}} <-
+ SearchIndexingWorker.enqueue("add_to_index", %{"activity" => activity_id}) do
+ :ok
+ else
+ false -> :ok
+ _ -> :error
+ end
end
+ @spec remove_from_index(Object.t()) :: :ok | :error
def remove_from_index(%Pleroma.Object{id: object_id}) do
- SearchIndexingWorker.enqueue("remove_from_index", %{"object" => object_id})
+ case SearchIndexingWorker.enqueue("remove_from_index", %{"object" => object_id}) do
+ {:ok, %Oban.Job{}} -> :ok
+ _ -> :error
+ end
end
def search(query, options) do
search_module = Pleroma.Config.get([Pleroma.Search, :module])
search_module.search(options[:for_user], query, options)
end
def healthcheck_endpoints do
search_module = Pleroma.Config.get([Pleroma.Search, :module])
search_module.healthcheck_endpoints
end
+
+ defp indexable?(%Activity{object: %Object{}, data: %{"type" => "Create"}}), do: true
+ defp indexable?(_), do: false
end

File Metadata

Mime Type
text/x-diff
Expires
Fri, Oct 30, 2:17 AM (1 d, 9 h)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
1799198
Default Alt Text
(1 KB)

Event Timeline