48 lines
1.2 KiB
Elixir
48 lines
1.2 KiB
Elixir
# credo:disable-for-this-file
|
|
# 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.Activity do
|
|
alias Pleroma.Activity
|
|
alias Pleroma.User
|
|
alias Pleroma.Web.CommonAPI
|
|
alias Pleroma.Pagination
|
|
alias Pleroma.Search.DatabaseSearch
|
|
require Logger
|
|
import Mix.Pleroma
|
|
import Ecto.Query
|
|
|
|
def run(["get", id | _rest]) do
|
|
start_pleroma()
|
|
|
|
id
|
|
|> Activity.get_by_id()
|
|
|> IO.inspect()
|
|
end
|
|
|
|
def run(["delete_by_keyword", user, keyword | _rest]) do
|
|
start_pleroma()
|
|
u = User.get_by_nickname(user)
|
|
|
|
index_type =
|
|
cond do
|
|
Pleroma.Config.get([:database, :rum_enabled]) -> :rum
|
|
Pleroma.Config.get([:database, :pgroonga_enabled]) -> :pgroonga
|
|
true -> :gin
|
|
end
|
|
|
|
Activity
|
|
|> Activity.with_preloaded_object()
|
|
|> Activity.restrict_deactivated_users()
|
|
|> Activity.Queries.by_author(u)
|
|
|> DatabaseSearch.query_with(index_type, keyword)
|
|
|> Pagination.fetch_paginated(
|
|
%{"offset" => 0, "limit" => 20, "skip_order" => false},
|
|
:offset
|
|
)
|
|
|> Enum.map(fn x -> CommonAPI.delete(x.id, u) end)
|
|
|> Enum.count()
|
|
|> IO.puts()
|
|
end
|
|
end
|