From d125668d259c18c0871fc23a70a49c0b104a680d Mon Sep 17 00:00:00 2001
From: github-actions <${GITHUB_ACTOR}@users.noreply.github.com>
Date: Mon, 16 Jan 2023 08:25:54 +0000
Subject: [PATCH] Format Python code with psf/black push

---
 cogs/commands.py                | 53 ++++++++++++++++++------
 cogs/translation_service_cog.py | 73 ++++++++++++++++++++++-----------
 gpt3discord.py                  |  1 -
 models/autocomplete_model.py    |  1 +
 models/check_model.py           |  4 +-
 models/deepl_model.py           | 16 ++++++--
 6 files changed, 106 insertions(+), 42 deletions(-)

diff --git a/cogs/commands.py b/cogs/commands.py
index 2cdba30..3fd0e4c 100644
--- a/cogs/commands.py
+++ b/cogs/commands.py
@@ -3,10 +3,15 @@ from pycord.multicog import add_to_group
 
 from services.environment_service import EnvService
 from models.check_model import Check
-from models.autocomplete_model import Settings_autocompleter, File_autocompleter, Translations_autocompleter
+from models.autocomplete_model import (
+    Settings_autocompleter,
+    File_autocompleter,
+    Translations_autocompleter,
+)
 
 ALLOWED_GUILDS = EnvService.get_allowed_guilds()
 
+
 class Commands(discord.Cog, name="Commands"):
     """Cog containing all slash and context commands as one-liners"""
 
@@ -507,33 +512,55 @@ class Commands(discord.Cog, name="Commands"):
     """
     Translation commands and actions
     """
-    @discord.slash_command(name="translate", description="Translate text to a given language", guild_ids=ALLOWED_GUILDS,
-                           checks=[Check.check_translator_roles()],
-)
+
+    @discord.slash_command(
+        name="translate",
+        description="Translate text to a given language",
+        guild_ids=ALLOWED_GUILDS,
+        checks=[Check.check_translator_roles()],
+    )
     @discord.option(name="text", description="The text to translate", required=True)
-    @discord.option(name="target_language", description="The language to translate to", required=True, autocomplete=Translations_autocompleter.get_languages)
+    @discord.option(
+        name="target_language",
+        description="The language to translate to",
+        required=True,
+        autocomplete=Translations_autocompleter.get_languages,
+    )
     @discord.guild_only()
-    async def translate(self, ctx: discord.ApplicationContext, text: str, target_language: str):
+    async def translate(
+        self, ctx: discord.ApplicationContext, text: str, target_language: str
+    ):
         if self.translations_cog:
             await self.translations_cog.translate_command(ctx, text, target_language)
         else:
-            await ctx.respond("Translations are disabled on this server.", ephemeral=True)
+            await ctx.respond(
+                "Translations are disabled on this server.", ephemeral=True
+            )
 
-    @discord.slash_command(name="languages", description="View the supported languages for translation", guild_ids=ALLOWED_GUILDS,
-                           checks=[Check.check_translator_roles()],)
+    @discord.slash_command(
+        name="languages",
+        description="View the supported languages for translation",
+        guild_ids=ALLOWED_GUILDS,
+        checks=[Check.check_translator_roles()],
+    )
     @discord.guild_only()
     async def languages(self, ctx: discord.ApplicationContext):
         if self.translations_cog:
             await self.translations_cog.languages_command(ctx)
         else:
-            await ctx.respond("Translations are disabled on this server.", ephemeral=True)
-
+            await ctx.respond(
+                "Translations are disabled on this server.", ephemeral=True
+            )
 
     @discord.message_command(
-        name="Translate", guild_ids=ALLOWED_GUILDS, checks=[Check.check_translator_roles()]
+        name="Translate",
+        guild_ids=ALLOWED_GUILDS,
+        checks=[Check.check_translator_roles()],
     )
     async def translate_action(self, ctx, message: discord.Message):
         if self.translations_cog:
             await self.translations_cog.translate_action(ctx, message)
         else:
-            await ctx.respond("Translations are disabled on this server.", ephemeral=True)
\ No newline at end of file
+            await ctx.respond(
+                "Translations are disabled on this server.", ephemeral=True
+            )
diff --git a/cogs/translation_service_cog.py b/cogs/translation_service_cog.py
index c2542ab..3c0a609 100644
--- a/cogs/translation_service_cog.py
+++ b/cogs/translation_service_cog.py
@@ -12,10 +12,11 @@ from models.deepl_model import TranslationModel
 from services.environment_service import EnvService
 from services.image_service import ImageService
 from services.text_service import TextService
+
 ALLOWED_GUILDS = EnvService.get_allowed_guilds()
 
 
-def build_translation_embed( text, target_language):
+def build_translation_embed(text, target_language):
     """Build an embed for the translation"""
     embed = discord.Embed(
         title=f"Translation results",
@@ -25,10 +26,15 @@ def build_translation_embed( text, target_language):
     embed.add_field(name="Target language", value=target_language, inline=False)
 
     return embed
+
+
 class TranslationService(discord.Cog, name="TranslationService"):
     """Cog containing a draw commands and file management for saved images"""
+
     def __init__(
-        self, bot, translation_model,
+        self,
+        bot,
+        translation_model,
     ):
         super().__init__()
         self.bot = bot
@@ -45,10 +51,7 @@ class TranslationService(discord.Cog, name="TranslationService"):
         embed.add_field(
             name="Languages",
             value=", ".join(
-                [
-                    f"{name}"
-                    for name in TranslationModel.get_all_country_names()
-                ]
+                [f"{name}" for name in TranslationModel.get_all_country_names()]
             ),
             inline=False,
         )
@@ -60,14 +63,19 @@ class TranslationService(discord.Cog, name="TranslationService"):
         await ctx.defer()
         # TODO Add pagination!
 
-        if target_language.lower().strip() not in TranslationModel.get_all_country_names(lower=True):
+        if (
+            target_language.lower().strip()
+            not in TranslationModel.get_all_country_names(lower=True)
+        ):
             await ctx.respond(
                 f"The language {target_language} is not recognized or supported. Please use `/languages` to see the list of supported languages."
             )
             return
 
         try:
-            response = await self.translation_model.send_translate_request(text, TranslationModel.get_country_code_from_name(target_language))
+            response = await self.translation_model.send_translate_request(
+                text, TranslationModel.get_country_code_from_name(target_language)
+            )
         except aiohttp.ClientResponseError as e:
             await ctx.respond(f"There was an error with the DeepL API: {e.message}")
             return
@@ -76,40 +84,59 @@ class TranslationService(discord.Cog, name="TranslationService"):
 
     async def translate_action(self, ctx, message):
         await ctx.defer(ephemeral=True)
-        selection_message = await ctx.respond("Select language", ephemeral=True, delete_after=60)
-        await selection_message.edit(view=TranslateView(self.translation_model, message, selection_message))
+        selection_message = await ctx.respond(
+            "Select language", ephemeral=True, delete_after=60
+        )
+        await selection_message.edit(
+            view=TranslateView(self.translation_model, message, selection_message)
+        )
 
     async def languages_command(self, ctx):
         """Show all languages supported for translation"""
         await ctx.defer()
         await ctx.respond(embed=self.build_supported_language_embed())
 
-class TranslateView(discord.ui.View):
 
+class TranslateView(discord.ui.View):
     def __init__(self, translation_model, message, selection_message):
         super().__init__()
         self.translation_model = translation_model
         self.message = message
         self.selection_message = selection_message
 
-    @discord.ui.select( # the decorator that lets you specify the properties of the select menu
-        placeholder = "Language", # the placeholder text that will be displayed if nothing is selected
-        min_values = 1, # the minimum number of values that must be selected by the users
-        max_values = 1, # the maximum number of values that can be selected by the users
-        options = [ # the list of options from which users can choose, a required field
+    @discord.ui.select(  # the decorator that lets you specify the properties of the select menu
+        placeholder="Language",  # the placeholder text that will be displayed if nothing is selected
+        min_values=1,  # the minimum number of values that must be selected by the users
+        max_values=1,  # the maximum number of values that can be selected by the users
+        options=[  # the list of options from which users can choose, a required field
             discord.SelectOption(
                 label=name,
-            ) for name in TranslationModel.get_all_country_names()
-        ]
+            )
+            for name in TranslationModel.get_all_country_names()
+        ],
     )
-    async def select_callback(self, select, interaction): # the function called when the user is done selecting options
+    async def select_callback(
+        self, select, interaction
+    ):  # the function called when the user is done selecting options
         try:
-            response = await self.translation_model.send_translate_request(self.message.content, TranslationModel.get_country_code_from_name(select.values[0]))
-            await self.message.reply(mention_author=False, embed=build_translation_embed(self.message.content, response))
+            response = await self.translation_model.send_translate_request(
+                self.message.content,
+                TranslationModel.get_country_code_from_name(select.values[0]),
+            )
+            await self.message.reply(
+                mention_author=False,
+                embed=build_translation_embed(self.message.content, response),
+            )
             await self.selection_message.delete()
         except aiohttp.ClientResponseError as e:
-            await interaction.response.send_message(f"There was an error with the DeepL API: {e.message}", ephemeral=True, delete_after=15)
+            await interaction.response.send_message(
+                f"There was an error with the DeepL API: {e.message}",
+                ephemeral=True,
+                delete_after=15,
+            )
             return
         except Exception as e:
-            await interaction.response.send_message(f"There was an error: {e}", ephemeral=True, delete_after=15)
+            await interaction.response.send_message(
+                f"There was an error: {e}", ephemeral=True, delete_after=15
+            )
             return
diff --git a/gpt3discord.py b/gpt3discord.py
index 5ffbfea..011d472 100644
--- a/gpt3discord.py
+++ b/gpt3discord.py
@@ -166,7 +166,6 @@ async def main():
         )
     )
 
-
     apply_multicog(bot)
 
     await bot.start(os.getenv("DISCORD_TOKEN"))
diff --git a/models/autocomplete_model.py b/models/autocomplete_model.py
index 2078bf1..73c1db4 100644
--- a/models/autocomplete_model.py
+++ b/models/autocomplete_model.py
@@ -74,6 +74,7 @@ class Settings_autocompleter:
             if channel.name.startswith(ctx.value.lower())
         ]
 
+
 class Translations_autocompleter:
     """autocompleter for the translations command"""
 
diff --git a/models/check_model.py b/models/check_model.py
index e2a10a4..b7ebd77 100644
--- a/models/check_model.py
+++ b/models/check_model.py
@@ -68,7 +68,9 @@ class Check:
         async def inner(ctx: discord.ApplicationContext):
             if TRANSLATOR_ROLES == [None]:
                 return True
-            if not any(role.name.lower() in TRANSLATOR_ROLES for role in ctx.user.roles):
+            if not any(
+                role.name.lower() in TRANSLATOR_ROLES for role in ctx.user.roles
+            ):
                 await ctx.defer(ephemeral=True)
                 await ctx.respond(
                     f"You don't have permission, list of roles is {TRANSLATOR_ROLES}",
diff --git a/models/deepl_model.py b/models/deepl_model.py
index f2f693c..a7562de 100644
--- a/models/deepl_model.py
+++ b/models/deepl_model.py
@@ -31,8 +31,9 @@ COUNTRY_CODES = {
     "UK": "Ukrainian",
     "ZH": "Chinese (simplified)",
 }
-class TranslationModel:
 
+
+class TranslationModel:
     def __init__(self):
         self.deepl_token = os.getenv("DEEPL_TOKEN")
 
@@ -64,7 +65,9 @@ class TranslationModel:
                 "Authorization": f"DeepL-Auth-Key {self.deepl_token}",
             }
             async with session.post(
-                "https://api-free.deepl.com/v2/translate", params=payload, headers=headers
+                "https://api-free.deepl.com/v2/translate",
+                params=payload,
+                headers=headers,
             ) as resp:
                 response = await resp.json()
                 print(response)
@@ -75,10 +78,15 @@ class TranslationModel:
                     print(response)
                     traceback.print_exc()
                     return response
+
     @staticmethod
     def get_all_country_names(lower=False):
         """Get a list of all the country names"""
-        return list(COUNTRY_CODES.values()) if not lower else [name.lower() for name in COUNTRY_CODES.values()]
+        return (
+            list(COUNTRY_CODES.values())
+            if not lower
+            else [name.lower() for name in COUNTRY_CODES.values()]
+        )
 
     @staticmethod
     def get_all_country_codes():
@@ -95,4 +103,4 @@ class TranslationModel:
         """Get the country code from the name"""
         for code, country_name in COUNTRY_CODES.items():
             if country_name.lower().strip() == name.lower().strip():
-                return code
\ No newline at end of file
+                return code