style: format with black

This commit is contained in:
Price Hiller 2024-10-01 18:27:04 -05:00
parent 3bea54be88
commit 323344aa2f
Signed by: Price
GPG Key ID: C3FADDE7A8534BEB
6 changed files with 118 additions and 72 deletions

View File

@ -18,29 +18,36 @@ class Group(commands.Cog, name="group"):
def __init__(self, client: Bot):
self.client = client
async def updateRole(self, role:discord.Role):
async def updateRole(self, role: discord.Role):
self.client.squadjs.connect()
membsup = []
for memb in role.members:
membsup.append(memb.id)
if len(membsup) > 0:
memupcur = self.client.squadjs.cursor(buffered=True)
in_params = ','.join(['%s'] * len(membsup))
sqlstate = "SELECT * FROM DBLog_SteamUsers WHERE discordID IN (%s)" % in_params
in_params = ",".join(["%s"] * len(membsup))
sqlstate = (
"SELECT * FROM DBLog_SteamUsers WHERE discordID IN (%s)" % in_params
)
log.info(sqlstate)
memupcur.execute(sqlstate, membsup)
udata = memupcur.fetchall()
for data in udata:
self.client.whitelistGrps[role.id].addMember(config.WhitelistMember(data[2], data[1], data[0]))
self.client.whitelistGrps[role.id].addMember(
config.WhitelistMember(data[2], data[1], data[0])
)
self.client.squadjs.commit()
self.client.squadjs.close()
async def baseperm(
self, interaction: discord.Interaction, role: discord.Role, perms: str
):
async def baseperm(self, interaction: discord.Interaction, role: discord.Role, perms: str):
await interaction.response.send_message("Whitelist group successfully added/updated")
await interaction.response.send_message(
"Whitelist group successfully added/updated"
)
if role.id in self.client.whitelistGrps.keys():
if perms is not None:
self.client.whitelistGrps[role.id].squadPerms = perms
@ -54,11 +61,7 @@ class Group(commands.Cog, name="group"):
await self.updateRole(role)
@app_commands.command()
async def update(
self,
interaction: discord.Interaction,
role: discord.Role
):
async def update(self, interaction: discord.Interaction, role: discord.Role):
if role.id in self.client.whitelistGrps.keys():
await interaction.response.send_message("updating role!")
await self.updateRole(role)
@ -67,28 +70,25 @@ class Group(commands.Cog, name="group"):
@app_commands.command()
async def add(
self,
interaction: discord.Interaction,
role: discord.Role,
self,
interaction: discord.Interaction,
role: discord.Role,
):
await self.baseperm(interaction, role, "reserve")
@app_commands.command()
async def addperm(
self,
interaction: discord.Interaction,
role: discord.Role,
perms: str
self, interaction: discord.Interaction, role: discord.Role, perms: str
):
await self.baseperm(interaction, role, perms)
@app_commands.command()
async def addremote(
self,
interaction: discord.Interaction,
shortname: str,
remoteurl: str,
perms: str = 'whitelist'
self,
interaction: discord.Interaction,
shortname: str,
remoteurl: str,
perms: str = "whitelist",
):
if os.path.exists(f"wlgrps/{shortname}.cfg"):
await interaction.response.send_message("Already exists!")
@ -102,9 +102,9 @@ class Group(commands.Cog, name="group"):
@app_commands.command()
async def remove(
self,
interaction: discord.Interaction,
role: discord.Role,
self,
interaction: discord.Interaction,
role: discord.Role,
):
if not self.client.whitelistGrps.get(role.id):
await interaction.response.send_message(

View File

@ -26,28 +26,46 @@ class Whitelist(commands.Cog):
return
updatecur = self.client.squadjs.cursor(buffered=True)
try:
updatecur.execute(self.client.squadjs_updateDiscordID, (interaction.user.id, steam64))
updatecur.execute(
self.client.squadjs_updateDiscordID, (interaction.user.id, steam64)
)
rowsaffected = updatecur.rowcount
if rowsaffected <= 0:
updatecur.execute(self.client.squadjs_findByDiscordID, [interaction.user.id])
updatecur.execute(
self.client.squadjs_findByDiscordID, [interaction.user.id]
)
if updatecur.rowcount <= 0:
await interaction.response.send_message("Cound not find SteamID!")
else:
for urole in interaction.user.roles:
if urole.id in self.client.whitelistGrps.keys():
self.client.whitelistGrps[urole.id].members[f"{interaction.user.id}"].steam64 = steam64
self.client.whitelistGrps[urole.id].members[
f"{interaction.user.id}"
].steam64 = steam64
self.client.whitelistGrps[urole.id].updateGroup()
await interaction.response.send_message("SteamID already linked, roles updated.")
await interaction.response.send_message(
"SteamID already linked, roles updated."
)
self.client.squadjs.commit()
return
except mysql.connector.Error as err:
log.error("MYSQL error!")
await interaction.response.send_message("There was an internal server error, pls contact skillet")
await interaction.response.send_message(
"There was an internal server error, pls contact skillet"
)
return
for urole in interaction.user.roles:
if urole.id in self.client.whitelistGrps.keys():
disusername = interaction.user.nick if interaction.user.nick is not None else interaction.user.name
self.client.whitelistGrps[urole.id].addMember(config.WhitelistMember(interaction.user.id, disusername, steam64))
disusername = (
interaction.user.nick
if interaction.user.nick is not None
else interaction.user.name
)
self.client.whitelistGrps[urole.id].addMember(
config.WhitelistMember(interaction.user.id, disusername, steam64)
)
self.client.squadjs.commit()
self.client.squadjs.close()
await interaction.response.send_message(f"discord is linked to steamID, roles updated.")
await interaction.response.send_message(
f"discord is linked to steamID, roles updated."
)

View File

@ -6,6 +6,7 @@ from autowl.config import DiscordClientConfig
log = logging.getLogger(__name__)
class CustomFormat(logging.Formatter):
grey = "\x1b[38;20m"
yellow = "\x1b[33;20m"

View File

@ -11,21 +11,21 @@ log = logging.getLogger(__name__)
class Bot(commands.Bot):
squadjs_updateDiscordID = ("UPDATE DBLog_SteamUsers SET discordID = %s "
"WHERE steamID = %s")
squadjs_updateDiscordID = (
"UPDATE DBLog_SteamUsers SET discordID = %s " "WHERE steamID = %s"
)
squadjs_findByDiscordID = ("SELECT * FROM DBLog_SteamUsers "
"WHERE discordID = %s")
squadjs_findByDiscordID = "SELECT * FROM DBLog_SteamUsers " "WHERE discordID = %s"
whitelistGrps = {}
if not os.path.exists('./wlgrps'):
os.makedirs('./wlgrps')
if not os.path.exists("./wlgrps"):
os.makedirs("./wlgrps")
else:
for wlfile in os.listdir('./wlgrps'):
for wlfile in os.listdir("./wlgrps"):
filename = os.fsdecode(wlfile)
if filename.endswith('.json'):
file = open(f'./wlgrps/{filename}', 'r')
if filename.endswith(".json"):
file = open(f"./wlgrps/{filename}", "r")
wlgrp: config.WhitelistGroup = jsonpickle.decode(file.read())
whitelistGrps[wlgrp.discord_role_id] = wlgrp
@ -39,11 +39,18 @@ class Bot(commands.Bot):
intents=intents,
help_command=commands.DefaultHelpCommand(dm_help=True),
)
self.squadjs = mysql.connector.connect(user='squadjs', password=mysqlpass,
host='asgard.orion-technologies.io', database='squadjs', use_pure=False)
self.squadjs = mysql.connector.connect(
user="squadjs",
password=mysqlpass,
host="asgard.orion-technologies.io",
database="squadjs",
use_pure=False,
)
async def on_command(self, ctx: commands.Context):
log.info(f"{ctx.author} ({ctx.author.id}) invoked command: {ctx.command.name}, {ctx.message}")
log.info(
f"{ctx.author} ({ctx.author.id}) invoked command: {ctx.command.name}, {ctx.message}"
)
async def on_ready(self):
log.info(f"Logged in as '{self.user}' ({self.user.id})")
@ -77,7 +84,7 @@ class Bot(commands.Bot):
rmroles.remove(aftrole.id)
log.info(f"roles found to remove from {disusername}: {rmroles}")
for rmroleid in rmroles:
if not(rmroleid in self.whitelistGrps.keys()):
if not (rmroleid in self.whitelistGrps.keys()):
continue
self.whitelistGrps[rmroleid].delMember(before.id)
@ -90,9 +97,11 @@ class Bot(commands.Bot):
addroles.remove(befrole.id)
log.info(f"roles found to add to {disusername}: {addroles}")
for addroleid in addroles:
if not(addroleid in self.whitelistGrps.keys()):
if not (addroleid in self.whitelistGrps.keys()):
continue
self.whitelistGrps[addroleid].addMember(config.WhitelistMember(after.id, disusername, userdata[0]))
self.whitelistGrps[addroleid].addMember(
config.WhitelistMember(after.id, disusername, userdata[0])
)
self.squadjs.commit()
self.squadjs.close()

View File

@ -23,7 +23,7 @@ class WhitelistGroup:
squadPerms: str
members: dict[str, WhitelistMember]
def __init__(self, name, roleID, permissions='reserve'):
def __init__(self, name, roleID, permissions="reserve"):
self.name = name
self.discord_role_id = roleID
self.squadPerms = permissions
@ -49,7 +49,9 @@ class WhitelistGroup:
wlFile.write(f"//{self.name}\n")
for wlmem in self.members:
memb = self.members[wlmem]
wlFile.write(f"Admin={memb.steam64}:{self.name} //{memb.discord_username} ({memb.discord_id})\n")
wlFile.write(
f"Admin={memb.steam64}:{self.name} //{memb.discord_username} ({memb.discord_id})\n"
)
wlFile.close()
def addMember(self, member):
@ -59,6 +61,6 @@ class WhitelistGroup:
pass
def delMember(self, discordID):
self.members.pop(f'{discordID}')
self.members.pop(f"{discordID}")
self.updateFile()
self.updateWL()

View File

@ -16,11 +16,11 @@ PORT = 8000
class serveRA(http.server.SimpleHTTPRequestHandler):
def do_GET(self):
query = parse_qs(urlparse(self.path).query)
if 'grpName' in query:
if "grpName" in query:
self.send_response(200)
self.send_header("Content-type", "text")
self.end_headers()
grpName = query['grpName'][0]
grpName = query["grpName"][0]
grpfile = "./"
if os.path.exists(f"./wlgrps/{grpName}.cfg"):
grpfile += f"wlgrps/{grpName}.cfg"
@ -30,37 +30,53 @@ class serveRA(http.server.SimpleHTTPRequestHandler):
print("could not find admins file!", file=stderr)
return
try:
file = open(grpfile, 'rb')
firstline = file.readline().decode('utf-8')
file = open(grpfile, "rb")
firstline = file.readline().decode("utf-8")
file.seek(0)
if firstline.startswith('remotelist='):
remote = firstline.split('=')[1].strip()
response = requests.get(remote, headers={'Accept': 'text/html,*/*'})
print(f"remote list came back with status code {response.status_code}")
if firstline.startswith("remotelist="):
remote = firstline.split("=")[1].strip()
response = requests.get(remote, headers={"Accept": "text/html,*/*"})
print(
f"remote list came back with status code {response.status_code}"
)
if response.status_code == 200:
responsetext = response.text
config = file.read().decode('utf-8')
confgrps = re.findall(r"permissions/(.+)=(.+)", config, flags=re.M)
config = file.read().decode("utf-8")
confgrps = re.findall(
r"permissions/(.+)=(.+)", config, flags=re.M
)
baseperm = re.findall(r"permissions=(.+)", config, flags=re.M)
responsetext = re.sub(r"Group=(.+):(.+)", fr'Group=\1:{baseperm[0]}', responsetext, flags=re.M)
responsetext = re.sub(
r"Group=(.+):(.+)",
rf"Group=\1:{baseperm[0]}",
responsetext,
flags=re.M,
)
for congrp in confgrps:
responsetext = re.sub(rf"^Group=({congrp[0]}):(.+)", rf"Group=\1:{congrp[1]}", responsetext, flags=re.M)
self.wfile.write(responsetext.encode('utf-8'))
with open(f"./wlgrps/backup-{grpName}.cfg", 'wb') as backupfile:
backupfile.write(responsetext.encode('utf-8'))
responsetext = re.sub(
rf"^Group=({congrp[0]}):(.+)",
rf"Group=\1:{congrp[1]}",
responsetext,
flags=re.M,
)
self.wfile.write(responsetext.encode("utf-8"))
with open(f"./wlgrps/backup-{grpName}.cfg", "wb") as backupfile:
backupfile.write(responsetext.encode("utf-8"))
backupfile.close()
else:
backupfile = open(f"./wlgrps/backup-{grpName}.cfg", 'rb')
backupfile = open(f"./wlgrps/backup-{grpName}.cfg", "rb")
self.copyfile(backupfile, self.wfile)
backupfile.close()
else:
self.copyfile(file, self.wfile)
file.close()
except:
print('failed to serve file!', file=stderr)
print("failed to serve file!", file=stderr)
print(traceback.format_exc(), file=stderr)
else:
self.send_error(400, 'please specify the group to pull from', 'no grpName specified!')
self.send_error(
400, "please specify the group to pull from", "no grpName specified!"
)
return
@ -71,7 +87,7 @@ def startServer():
print("trying to start...")
try:
with socketserver.ThreadingTCPServer(("", PORT), handler) as httpd:
print('starting server!')
print("starting server!")
httpd.serve_forever()
except:
print("server did not start trying again!")