From 8352a3cab472fb5e40822a479163a2306acc6df6 Mon Sep 17 00:00:00 2001 From: Luna Mendes Date: Sun, 28 Oct 2018 00:15:56 -0300 Subject: [PATCH] guild.mod: add POST /guilds/:id/prune --- litecord/blueprints/guild/mod.py | 27 ++++++++++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-) diff --git a/litecord/blueprints/guild/mod.py b/litecord/blueprints/guild/mod.py index 3d8cb3b..1c865af 100644 --- a/litecord/blueprints/guild/mod.py +++ b/litecord/blueprints/guild/mod.py @@ -30,8 +30,14 @@ async def remove_member(guild_id: int, member_id: int): }) +async def remove_member_multi(guild_id: int, members: list): + """Remove multiple members.""" + for member_id in members: + await remove_member(guild_id, member_id) + + @bp.route('//members/', methods=['DELETE']) -async def kick_member(guild_id, member_id): +async def kick_guild_member(guild_id, member_id): """Remove a member from a guild.""" user_id = await token_check() @@ -159,3 +165,22 @@ async def get_guild_prune_count(guild_id): return jsonify({ 'pruned': len(member_ids), }) + + +@bp.route('//prune', methods=['POST']) +async def begin_guild_prune(guild_id): + user_id = await token_check() + + # TODO: check KICK_MEMBERS + await guild_owner_check(user_id, guild_id) + + j = validate(await request.get_json(), GUILD_PRUNE) + days = j['days'] + member_ids = await get_prune(guild_id, days) + + app.loop.create_task(remove_member_multi(guild_id, member_ids)) + + return jsonify({ + 'pruned': len(member_ids) + }) +