index — Deutsche-Haus-Bot @ 5dddac690d57fdb993c99f1bd48039573d09a084

Discord bot to dynamically create voice chats for clubs that boosters can create

can create club and add members in db, not role on discord yet
crispy-caesus 114518720+crispy-caesus@users.noreply.github.com
Fri, 09 Aug 2024 11:57:28 +0200
commit

5dddac690d57fdb993c99f1bd48039573d09a084

parent

151426d13068bc4bb19dabeedf01c82c41e46f96

2 files changed, 26 insertions(+), 5 deletions(-)

jump to
M bot.pybot.py

@@ -1,11 +1,11 @@

import discord import bot_token +import db as database import aiosqlite bot = discord.Bot() - -@bot.on_guild_join() -def joined(guild) +#@bot.on_guild_join() +#def joined(guild)

@@ -15,6 +15,25 @@ @bot.slash_command()

async def hello(ctx, name: str = None): name = name or ctx.author.name await ctx.respond(f"Hello {name}!") + +@bot.slash_command() +async def club_hinzuftügen(ctx, club_name, emoji, rolle): + db = database.Database(f"{ctx.guild.id}.db") + await db.create_tables() + + user = ctx.author.id + channel_name = f"[{emoji}]{club_name}" + response = await db.create_club(channel_name, user, rolle[3:-1]) + if response == None: + await ctx.respond(f"{channel_name} created!") + else: + await ctx.respond(response) + +@bot.slash_command() +async def mitglied_hinzufuegen(ctx, member): + db = database.Database(f"{ctx.guild.id}.db") + response = await db.add_member(member[2:-1], ctx.author.id) + await ctx.respond(":white_check_mark:") @bot.user_command(name="Say Hello") async def hi(ctx, user):
M db.pydb.py

@@ -33,6 +33,7 @@ ON DELETE CASCADE);""")

await db.commit() async def create_club(self, channel_name: str, owner: int, role_id: int): + print(f"DB: received:\n channel_name: {channel_name}\n owner: {owner}\n role_id: {role_id}") args = (channel_name, owner, role_id) sql = """INSERT INTO clubs (channel_name,owner,role_id) VALUES(?,?,?);"""

@@ -44,12 +45,13 @@ except Error as e:

print(e) return("Club existiert schon") - async def add_member(self, member: int, club: int): + async def add_member(self, member: int, owner: int): + print(f"DB: received:\n member: {member}\n owner: {owner}") 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 role_id = ?;", (club, )) as cursor: + async with db.execute("SELECT id FROM clubs WHERE owner = ?;", (owner, )) as cursor: async for row in cursor: args = (member, row[0]) await db.execute(sql, args)