delete_user.py 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. import discord.ext.commands as discord_cmds
  2. import myanimebot.utils as utils
  3. import myanimebot.globals as globals
  4. import myanimebot.commands.permissions as permissions
  5. import myanimebot.commands.converters as converters
  6. @discord_cmds.command(name="delete")
  7. @discord_cmds.check(permissions.in_allowed_role)
  8. async def delete_user_cmd(ctx, service : converters.to_service, user : str):
  9. ''' Processes the command "delete" and remove a registered user '''
  10. server = ctx.guild
  11. server_id = str(server.id)
  12. user_servers = utils.get_user_servers(user, service)
  13. # If user is not present in the database
  14. if user_servers is None:
  15. return await ctx.send("The user **" + user + "** is not in our database for this server!")
  16. # Else if present, update the servers for this user
  17. srv_string = utils.remove_server_from_servers(server_id, user_servers)
  18. if srv_string is None: # Server not present in the user's servers
  19. return await ctx.send("The user **" + user + "** is not in our database for this server!")
  20. if srv_string == "":
  21. utils.delete_user_from_db(user, service)
  22. else:
  23. utils.update_user_servers_db(user, service, srv_string)
  24. return await ctx.send("**{}** deleted from the database for this server.".format(user))
  25. @delete_user_cmd.error
  26. async def delete_user_cmd_error(ctx, error):
  27. ''' Processes errors from delete cmd '''
  28. if isinstance(error, discord_cmds.MissingRequiredArgument):
  29. return await ctx.send("Usage: {} add **{}**/**{}** **username**".format(globals.prefix, globals.SERVICE_MAL, globals.SERVICE_ANILIST))
  30. elif isinstance(error, discord_cmds.ConversionError):
  31. return await ctx.send('Incorrect service {}. Use **"{}"** or **"{}"** for example'.format(error.original, globals.SERVICE_MAL, globals.SERVICE_ANILIST))