diff options
author | Luca Matei Pintilie <luca@lucamatei.com> | 2024-08-10 11:18:06 +0000 |
---|---|---|
committer | Luca Matei Pintilie <luca@lucamatei.com> | 2024-08-10 11:18:06 +0000 |
commit | e5af6b476afd1d6936583015d229330865d30dd4 (patch) | |
tree | 3452fa034314115c22de4ac67547f734c6146135 | |
parent | eca82a80107d4fc04814ae476b95124d1ce7a8af (diff) | |
download | steve-bot-e5af6b476afd1d6936583015d229330865d30dd4.tar steve-bot-e5af6b476afd1d6936583015d229330865d30dd4.tar.gz steve-bot-e5af6b476afd1d6936583015d229330865d30dd4.tar.bz2 steve-bot-e5af6b476afd1d6936583015d229330865d30dd4.tar.lz steve-bot-e5af6b476afd1d6936583015d229330865d30dd4.tar.xz steve-bot-e5af6b476afd1d6936583015d229330865d30dd4.tar.zst steve-bot-e5af6b476afd1d6936583015d229330865d30dd4.zip |
Try to keep users not apart of the server, but remove the rest
-rwxr-xr-x | cogs/src.py | 22 |
1 files changed, 9 insertions, 13 deletions
diff --git a/cogs/src.py b/cogs/src.py index 20f6042..532f269 100755 --- a/cogs/src.py +++ b/cogs/src.py @@ -312,7 +312,10 @@ async def verifyNew(self, apiKey=None, userID=None): # return # else: user = await self.bot.fetch_user(int(userID)) - member = await server.fetch_member(user.id) + try: + member = await server.fetch_member(user.id) + except discord.NotFound: + raise Exception("discord_member_not_found") data = json.loads(Path("./api_keys.json").read_text()) if str(user.id) in data: @@ -495,13 +498,12 @@ class Src(commands.Cog): async def checker(self): data = json.loads(Path("./api_keys.json").read_text()) keys_to_delete = [] - alts_to_remove = [] for key, value in data.items(): skip = False for key2, value2 in data.items(): - if value == value2 and key != key2 and key2 not in alts_to_remove: + if value == value2 and key != key2 and key2 not in keys_to_delete: self.bot.logger.info(f"Alt found: {value} is the same for {key} and {key2}. Deleting") - alts_to_remove.append(key) + keys_to_delete.append(key) skip = True try: if not skip: @@ -512,14 +514,12 @@ class Src(commands.Cog): except Exception as e: if e.args[0] == "speedrun_com_user_not_found": keys_to_delete.append(key) + elif e.args[0] == "discord_member_not_found": + # Do not delete, we want to keep these in the database else: self.bot.logger.error(f"{key}: {value}", exc_info=e) data = json.loads(Path("./api_keys.json").read_text()) - for key in keys_to_delete: - id = str(key) - if id in data.keys(): - del data[id] # TODO: Don't copy logic from verifyNew server = self.bot.get_guild(574267523869179904) @@ -527,11 +527,7 @@ class Src(commands.Cog): WrRole = server.get_role(583622436378116107) ActiveRunnerRole = server.get_role(1271515943050412042) - for key in alts_to_remove: - if key in keys_to_delete: - # Already deleted - continue - + for key in keys_to_delete: userID = int(key) # If fetch_user call fails, delete the key # If fetch_member fails, don't delete |