From 218bf2aa03e1b246d551e0e857a359bfb442a612 Mon Sep 17 00:00:00 2001 From: Paillat Date: Thu, 9 Mar 2023 16:22:15 +0100 Subject: [PATCH] Added downvote --- code/cogs/chat.py | 47 ++++++++++++++++++++++++++++++++++++++++------- code/config.py | 1 + 2 files changed, 41 insertions(+), 7 deletions(-) diff --git a/code/cogs/chat.py b/code/cogs/chat.py index dacc2df..4ef117b 100644 --- a/code/cogs/chat.py +++ b/code/cogs/chat.py @@ -1,11 +1,37 @@ import discord -import re -import asyncio -import openai -from config import debug, c, max_uses, cp, conn, connp -import random -import threading +from config import debug, c, max_uses, cp, conn, connp, webhook_url import makeprompt as mp +import aiohttp + +class MyModal(discord.ui.Modal): + def __init__(self, message): + super().__init__(title="Downvote") + self.add_item(discord.ui.InputText(label="Reason", style=discord.InputTextStyle.long)) + self.message = message + + async def callback(self, interaction: discord.Interaction): + debug("Downvote sent !") + embed = discord.Embed(title="Thanks for your feedback !", description="Your downvote has been sent to the developers. Thanks for your help !", color=discord.Color.og_blurple()) + embed.add_field(name="Message", value=self.children[0].value) + await interaction.response.send_message(embed=embed, ephemeral=True) + try: + session = aiohttp.ClientSession() + webhook = discord.Webhook.from_url(webhook_url, session=session) + embed = discord.Embed(title="Downvote", description=f"Downvote recieved!", color=discord.Color.og_blurple()) + embed.add_field(name="Reason", value=self.children[0].value) + embed.add_field(name="Author", value=self.message.author.mention) + embed.add_field(name="Channel", value=self.message.channel.name) + embed.add_field(name="Guild", value=self.message.guild.name) + msgembed = discord.Embed(title="Messages", description=f"Messages history", color=discord.Color.og_blurple()) + history = await self.message.channel.history(limit=5).flatten() + for message in history: + msgembed.add_field(name=message.author.name, value=message.content, inline=False) + embeds = [embed, msgembed] + await webhook.send(embeds=embeds) + except Exception as e: + debug(e) + + class Chat (discord.Cog) : def __init__(self, bot: discord.Bot): super().__init__() @@ -29,4 +55,11 @@ class Chat (discord.Cog) : else: message_to_redo=history[0] await ctx.respond("Message redone !", ephemeral=True) - await mp.chat_process(self, message_to_redo) \ No newline at end of file + await mp.chat_process(self, message_to_redo) + + + + @discord.message_command(name="Downvote", description="Downvote a message") + async def downvote(self, ctx: discord.ApplicationContext, message: discord.Message): + modal = MyModal(message) + await ctx.send_modal(modal) \ No newline at end of file diff --git a/code/config.py b/code/config.py index fbe2e2a..0aa0948 100644 --- a/code/config.py +++ b/code/config.py @@ -6,6 +6,7 @@ import openai load_dotenv() perspective_api_key = os.getenv("PERSPECTIVE_API_KEY") discord_token = os.getenv("DISCORD_TOKEN") +webhook_url = os.getenv("WEBHOOK_URL") max_uses: int = 400 logging.basicConfig(level=logging.INFO)