import os, discord, aiohttp from discord.ext import commands from dotenv import load_dotenv import logging load_dotenv() TOKEN = os.getenv("TOKEN") LOGLEVEL = os.getenv("LOGLEVEL", "INFO").upper() log = logging.getLogger("discord") log.setLevel(LOGLEVEL) handler = logging.StreamHandler() handler.setFormatter( logging.Formatter("%(asctime)s : %(levelname)s : %(name)s : %(message)s") ) log.addHandler(handler) async def post_request(session, user, message): url = "https://schmoekerei.com/mail.php" async with session.post( url, data={ "username": user, "email": "discord@schmoekerei.com", "request": f"Anfrage über Discord: {message}", }, ) as response: data = await response.text() log.info(f"POST response: {data.splitlines()[0]}") bot = commands.Bot( command_prefix=".", activity=discord.Activity(name=".request", type=discord.ActivityType.listening), ) @bot.event async def on_ready(): log.info(f"Bot is ready! Loglevel: {LOGLEVEL}") @bot.event async def on_command_error(ctx, error): if isinstance(error, discord.ext.commands.errors.MissingRole): log.info("Denied {0.author} usage of {0.command}: Missing Role".format(ctx)) await ctx.send( f"Du brauchst zur Nutzung dieses Befehls die Rolle {error.missing_role}.", delete_after=10.0, ) else: log.info( f"Command error occurred: User {ctx.author} / {error.__class__.__name__} : {error}" ) @bot.command() @commands.has_role("Admin") async def clear(ctx, amount=1): """[Admin] Löscht x Nachrichten""" log.info("Clearing {0} Messages".format(amount)) await ctx.channel.purge(limit=amount) @bot.command() async def request(ctx, *args): """Erstellt ein Support-Ticket mit deiner Nachricht.""" if ctx.channel.name in ["requests", "system"]: if " ".join(args) == "test": await ctx.message.add_reaction("👍") else: async with aiohttp.ClientSession() as session: await post_request(session, ctx.author, " ".join(args)) await ctx.message.add_reaction("✅") bot.run(TOKEN)