edit club, prettier errors :D
crispy-caesus 114518720+crispy-caesus@users.noreply.github.com
Fri, 16 Aug 2024 11:08:49 +0200
M
bot.py
→
bot.py
@@ -68,7 +68,7 @@ async def test(ctx):
await ctx.guild.create_role(name = "hi", color=int("0x"+("#5460D9"[1:]), 16)+0x200, mentionable = False) await ctx.respond("hi") -# ======================== add club ================================ # +# ======================== ADD CLUB ================================ # @bot.slash_command(description="Erstellt einen Booster Club") async def club_hinzuftügen(ctx, kanalname, emoji, rollenname, rollenfarbe):@@ -85,13 +85,15 @@ await ctx.guild.create_role(name = response[0], color = response[1], mentionable = False)
role = await role_converter.convert(ctx, rollenname) - response = await logic.add_club(ctx.guild.id, kanalname, emoji, rollenname, role.id, ctx.author.id, 3) - if response != None: - await ctx.respond(response) - await ctx.respond("✅ Club erstellt!") + await ctx.respond(await logic.add_club(ctx.guild.id, kanalname, emoji, rollenname, role.id, ctx.author.id, 3)) +# ==================== EDIT CLUBS ====================== # +@bot.slash_command(description="Ändert den Channel Name des Clubs") +async def club_channel_name_aendern(ctx, neuer_name): + await ctx.respond(await logic.club_change_channel_name(ctx.guild.id, ctx.author.id, neuer_name)) +# ========================= dsfsf ======================= # @bot.slash_command(description="Fügt Member zu eigenem Club hinzu") async def mitglied_hinzufuegen(ctx, member): db = database.Database(f"{ctx.guild.id}.db")
M
db.py
→
db.py
@@ -13,7 +13,7 @@ async with aiosqlite.connect(self.db_name) as db:
await db.execute("""CREATE TABLE IF NOT EXISTS clubs ( id INTEGER PRIMARY KEY, channel_name TEXT NOT NULL UNIQUE, - owner INTEGER NOT NULL UNIQUE, + owner_id INTEGER NOT NULL UNIQUE, role_id INTEGER NOT NULL UNIQUE, role_name TEXT NOT NULL UNIQUE);""") await db.commit()@@ -56,7 +56,7 @@ print(e)
return("Error") return(None) -# =========================== create club =========================== # +# =========================== CREATE CLUB =========================== # async def get_booster_role_id(self): async with aiosqlite.connect(self.db_name) as db:@@ -65,9 +65,9 @@ return((await cursor.fetchone())[0])
async def select_club_by_owner(self, owner_id): async with aiosqlite.connect(self.db_name) as db: - async with db.execute("SELECT * FROM clubs WHERE owner = ?;", (owner_id,)) as cursor: + async with db.execute("SELECT * FROM clubs WHERE owner_id = ?;", (owner_id,)) as cursor: async for row in cursor: - return row[0] + return row async def select_club_by_channel_name(self, channel_name): async with aiosqlite.connect(self.db_name) as db:@@ -85,7 +85,7 @@
async def create_club(self, channel_name: str, owner: int, role_id: int, role_name: str): print(f"DB: received:\n channel_name: {channel_name}\n owner: {owner}\n role_id: {role_id}") args = (channel_name, owner, role_id, role_name) - sql = """INSERT INTO clubs (channel_name,owner,role_id,role_name) + sql = """INSERT INTO clubs (channel_name,owner_id,role_id,role_name) VALUES(?,?,?,?);""" try: async with aiosqlite.connect(self.db_name) as db:@@ -93,7 +93,21 @@ await db.execute(sql, args)
await db.commit() except Error as e: print(e) - return("Error!") + return("❌ Error!") + +# ============================ EDIT CLUB ========================== # + + async def club_edit(self, owner_id: int, column, value): + print(f"DB: updating club:\n owner_id: {owner_id}\n column: {column}\n value: {value}") + async with aiosqlite.connect(self.db_name) as db: + try: + await db.execute(f"UPDATE clubs SET {column} = ? WHERE owner_id = ?;", (value, owner_id)) + await db.commit() + return(None) + except Error as e: + print(e) + return("❌ Error!") + # ============================ add member ================================== #@@ -103,18 +117,18 @@ sql = """INSERT INTO members (user_id, club_id)
VALUES(?,?);""" try: async with aiosqlite.connect(self.db_name) as db: - async with db.execute("SELECT id FROM clubs WHERE owner = ?;", (owner, )) as cursor: + async with db.execute("SELECT id FROM clubs WHERE owner_id = ?;", (owner, )) as cursor: async for row in cursor: args = (member, row[0]) await db.execute(sql, args) await db.commit() except Error as e: print(e) - return("Error") + return("❌ Error") async def select_role_id_by_owner(self, member: int): async with aiosqlite.connect(self.db_name) as db: - async with db.execute("SELECT role_id FROM clubs WHERE owner = ?;", (member,)) as cursor: + async with db.execute("SELECT role_id FROM clubs WHERE owner_id = ?;", (member,)) as cursor: async for row in cursor: return(row[0])
M
logic.py
→
logic.py
@@ -91,11 +91,25 @@ except:
return("Error! Farbformat falsch angegeben") return(role_name, color) - + case 3: - return(await db.create_club(f"「{emoji}」{channel_name_without_emoji}", owner_id, int(color), role_name)) - + error = await db.create_club(f"「{emoji}」{channel_name_without_emoji}", owner_id, int(color), role_name) + if error != None: + return(error) + else: + return(f"✅ Club `「{emoji}」{channel_name_without_emoji}` erstellt!") + - # role id needed +# ==================================== EDIT CLUB ============================= # + +async def club_change_channel_name(guild_id: int, owner_id: int, new_channel_name: str): + db = database.Database(f"{guild_id}.db") + e = await db.select_club_by_owner(owner_id) + print(e[1][:3]+new_channel_name) + error = await db.club_edit(owner_id, "channel_name", e[1][:3]+new_channel_name) + if error != None: + return(error) + else: + return(f"✅ Club Name von `{e[1][3:]}` auf `{new_channel_name}` geändert")