Merge branch 'feature/mix-unsubscribe-all-from-instance' into 'develop'

mix: add pleroma.user unsubscribe_all_from_instance

See merge request pleroma/pleroma!1454
This commit is contained in:
kaniini 2019-07-19 19:33:47 +00:00
commit c1c64d6d06

View file

@ -62,6 +62,10 @@ defmodule Mix.Tasks.Pleroma.User do
mix pleroma.user unsubscribe NICKNAME mix pleroma.user unsubscribe NICKNAME
## Unsubscribe local users from an entire instance and deactivate all accounts
mix pleroma.user unsubscribe_all_from_instance INSTANCE
## Create a password reset link. ## Create a password reset link.
mix pleroma.user reset_password NICKNAME mix pleroma.user reset_password NICKNAME
@ -246,6 +250,20 @@ defmodule Mix.Tasks.Pleroma.User do
end end
end end
def run(["unsubscribe_all_from_instance", instance]) do
start_pleroma()
Pleroma.User.Query.build(%{nickname: "@#{instance}"})
|> Pleroma.RepoStreamer.chunk_stream(500)
|> Stream.each(fn users ->
users
|> Enum.each(fn user ->
run(["unsubscribe", user.nickname])
end)
end)
|> Stream.run()
end
def run(["set", nickname | rest]) do def run(["set", nickname | rest]) do
start_pleroma() start_pleroma()