aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLuca Matei Pintilie <luca@lucamatei.com>2024-08-04 11:14:23 +0000
committerLuca Matei Pintilie <luca@lucamatei.com>2024-08-04 17:14:00 +0000
commit48dd788fb7018aeac66de9a4713863f6ac5f022a (patch)
tree2c360a041dc0d93dbcfbcbaa9bdc4034f85b3136
parentacfbb761379f6f27a1c4740b74ba6758942780fc (diff)
downloadsteve-bot-48dd788fb7018aeac66de9a4713863f6ac5f022a.tar
steve-bot-48dd788fb7018aeac66de9a4713863f6ac5f022a.tar.gz
steve-bot-48dd788fb7018aeac66de9a4713863f6ac5f022a.tar.bz2
steve-bot-48dd788fb7018aeac66de9a4713863f6ac5f022a.tar.lz
steve-bot-48dd788fb7018aeac66de9a4713863f6ac5f022a.tar.xz
steve-bot-48dd788fb7018aeac66de9a4713863f6ac5f022a.tar.zst
steve-bot-48dd788fb7018aeac66de9a4713863f6ac5f022a.zip
WIP remove dupes
-rwxr-xr-xcogs/general.py2
-rwxr-xr-xcogs/src.py43
2 files changed, 42 insertions, 3 deletions
diff --git a/cogs/general.py b/cogs/general.py
index 64e0ab6..65ff521 100755
--- a/cogs/general.py
+++ b/cogs/general.py
@@ -384,7 +384,7 @@ class MyHelpCommand(commands.MinimalHelpCommand):
]
def get_command_signature(self, command):
- return f"``{self.clean_prefix}{command.qualified_name} {command.signature}``"
+ return f"``{self.context.clean_prefix}{command.qualified_name} {command.signature}``"
def get_ending_note(self) -> str:
return choice(self.messages)
diff --git a/cogs/src.py b/cogs/src.py
index 166760e..26bb820 100755
--- a/cogs/src.py
+++ b/cogs/src.py
@@ -329,8 +329,10 @@ async def verifyNew(self, apiKey=None, userID=None):
except json.decoder.JSONDecodeError:
return
srcUserID = profile["data"]["id"]
+
+ data[user.id] = srcUserID
+
with open("api_keys.json", "w") as file:
- data[user.id] = srcUserID
json.dump(data, file, indent=4)
pbs = requests.get(profile["data"]["links"][3]["uri"], headers=head)
pbs = json.loads(pbs.text)
@@ -476,14 +478,51 @@ class Src(commands.Cog):
@tasks.loop(minutes=10.0)
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 not key == key2:
+ print(f"Alt found: {value} is the same for {key} and {key2}")
+ alts_to_remove.append(key)
+ skip = True
try:
- await verifyNew(self, None, key)
+ if not skip:
+ await verifyNew(self, None, key)
+ except discord.NotFound:
+ print(f"Didn't find user {key}. Deleting")
+ keys_to_delete.append(key)
except Exception as e:
print(f"{key}: {value}")
print(e.args)
continue
+ 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)
+ RunnerRole = server.get_role(574268937454223361)
+ WrRole = server.get_role(583622436378116107)
+
+ for key in alts_to_remove:
+ try:
+ member = await server.fetch_member(int(key))
+ await member.remove_roles(RunnerRole)
+ await member.remove_roles(WrRole)
+ except discord.NotFound:
+ print(f"Didn't find user {key}. Deleting")
+ id = str(key)
+ if id in data.keys():
+ del data[id]
+
+ with open("api_keys.json", "w") as file:
+ json.dump(data, file, indent=4)
+
async def setup(bot):
await bot.add_cog(Src(bot))