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
- params = %{limit: 20}
+ IO.puts(max_id)
+ params = %{limit: 2000}
params =
if max_id == nil 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)
@behaviour Pleroma.Search
alias Pleroma.Web.MastodonAPI.StatusView
+ alias Pleroma.Web.ActivityPub.Visibility
defp to_es(term) when is_binary(term) do
%{
|> Map.get("hits", [])
|> Enum.map(fn result -> result["_id"] end)
|> Pleroma.Activity.all_by_ids_with_object()
+ |> Enum.filter(fn x -> Visibility.visible_for_user?(x, user) end)
%{
"accounts" => [],