From 58e9a6d3d5a0ed1f237cc6ff36cc1d9588871459 Mon Sep 17 00:00:00 2001 From: "kevin.banzet" Date: Tue, 23 Jul 2024 12:45:24 +0200 Subject: [PATCH] Corrections mineures sur de multiples fichiers. --- .github/workflows/codacy.yml | 2 +- Discord-Bot-main/Bot/DebugBot.py | 42 ------- Discord-Bot-main/Bot/debug_bot.py | 41 +++++++ Discord-Bot-main/Bot/description.txt | 1 - Discord-Bot-main/Bot/event.py | 174 +++++++++++++-------------- Discord-Bot-main/Bot/ur_bot.py | 12 +- Discord-Bot-main/README.md | 13 +- archives/functions.py | 2 +- 8 files changed, 140 insertions(+), 147 deletions(-) delete mode 100644 Discord-Bot-main/Bot/DebugBot.py create mode 100644 Discord-Bot-main/Bot/debug_bot.py delete mode 100644 Discord-Bot-main/Bot/description.txt diff --git a/.github/workflows/codacy.yml b/.github/workflows/codacy.yml index 377f986..fac464a 100644 --- a/.github/workflows/codacy.yml +++ b/.github/workflows/codacy.yml @@ -51,7 +51,7 @@ jobs: # Adjust severity of non-security issues gh-code-scanning-compat: true # Force 0 exit code to allow SARIF file generation - # This will handover control about PR rejection to the GitHub side + # This will hand over control about PR rejection to the GitHub side max-allowed-issues: 2147483647 # Upload the SARIF file generated in the previous step diff --git a/Discord-Bot-main/Bot/DebugBot.py b/Discord-Bot-main/Bot/DebugBot.py deleted file mode 100644 index 3115930..0000000 --- a/Discord-Bot-main/Bot/DebugBot.py +++ /dev/null @@ -1,42 +0,0 @@ - - -from importlib import reload -import asyncio -import event -import types - - - -# décaration d'un décorateur a fonction (@update_module(module_name)) -def update_module(module): - def __update__(func): - async def callback(*args, **kwargs): - reload(__import__(module,globals(), locals(), [], 0)) # (recherche le module pour voir si il est déà chargé sinon il import dynamiquement) puis la fonction reload recharge le module - return await func(*args, **kwargs) - - return (callback) - - return __update__ - - -def update_all_modules(func): - async def __update__(*args, **kwargs): - for name, val in globals().items(): - if isinstance(val, types.ModuleType): - print(val.__name__) - reload(__import__(val.__name__,globals(), locals(), [], 0)) - - reload(__import__("DebugBot",globals(), locals(), [], 0)) - - return await func(*args, **kwargs) - - return __update__ - -async def debug_on_message(*args,**kwargs): - return await event.on_message(*args,**kwargs) - -async def debug_on_prez(*args,**kwargs): - return await event.on_prez(*args,**kwargs) - -async def debug_on_help(*args,**kwargs): - return await event.on_help(*args,**kwargs) diff --git a/Discord-Bot-main/Bot/debug_bot.py b/Discord-Bot-main/Bot/debug_bot.py new file mode 100644 index 0000000..4ea32c6 --- /dev/null +++ b/Discord-Bot-main/Bot/debug_bot.py @@ -0,0 +1,41 @@ +from importlib import reload +import event +import types + + +# Déclaration d'un décorateur à fonction (@update_module(module_name)) +def update_module(module): + def __update__(func): + # Recherche du module pour voir s'il est déjà chargé ; si ce n'est pas le cas : + # il importe dynamiquement et ensuite, la fonction 'reload' recharge le module. + async def callback(*args, **kwargs): + reload(__import__(module, globals(), locals(), [], + 0)) + return await func(*args, **kwargs) + return callback + return __update__ + + +def update_all_modules(func): + async def __update__(*args, **kwargs): + for name, val in globals().items(): + if isinstance(val, types.ModuleType): + print(val.__name__) + reload(__import__(val.__name__, globals(), locals(), [], 0)) + + reload(__import__("DebugBot", globals(), locals(), [], 0)) + + return await func(*args, **kwargs) + return __update__ + + +async def debug_on_message(*args, **kwargs): + return await event.on_message(*args, **kwargs) + + +async def debug_on_prez(*args, **kwargs): + return await event.on_prez(*args, **kwargs) + + +async def debug_on_help(*args, **kwargs): + return await event.on_help(*args, **kwargs) diff --git a/Discord-Bot-main/Bot/description.txt b/Discord-Bot-main/Bot/description.txt deleted file mode 100644 index 8638553..0000000 --- a/Discord-Bot-main/Bot/description.txt +++ /dev/null @@ -1 +0,0 @@ -$help \ No newline at end of file diff --git a/Discord-Bot-main/Bot/event.py b/Discord-Bot-main/Bot/event.py index b8450da..a04bb56 100644 --- a/Discord-Bot-main/Bot/event.py +++ b/Discord-Bot-main/Bot/event.py @@ -1,132 +1,128 @@ -import asyncio import discord BOT_PREFIX = "$" - -HELP_DATA = { - "About": - { - "cmd_0": - { - "cmd": "credit", - "help": "Affiche les crédits" - }, - - "cmd_1": - { - "cmd": "version", - "help": "Affiche les numéros de version" - }, - }, - - "General": - { - "cmd_0": - { - "cmd": "cancel", - "help": "Annule l'action en cours" - }, - - "cmd_1": - { - "cmd": "done", - "help": "Confirme l'action en cours" - }, - - "cmd_2": - { - "cmd": "edit", - "help": "Édite un message" - }, - - "cmd_3": +help_data = { + "About": { - "cmd": "lang", - "help": "Change la langue de l'utilisateur" + "cmd_0": + { + "cmd": "credit", + "help": "Affiche les crédits" + }, + "cmd_1": + { + "cmd": "version", + "help": "Affiche les numéros de version" + }, }, - }, - - "Planning": - { - "cmd_0": + "General": { - "cmd": "cal", - "help": "Permet d'accéder au calendrier" + "cmd_0": + { + "cmd": "cancel", + "help": "Annule l'action en cours" + }, + "cmd_1": + { + "cmd": "done", + "help": "Confirme l'action en cours" + }, + "cmd_2": + { + "cmd": "edit", + "help": "Édite un message" + }, + "cmd_3": + { + "cmd": "lang", + "help": "Change la langue de l'utilisateur" + }, }, - - "cmd_1": - { - "cmd": "jdr", - "help": "Envoie un lien pour créer une partie" - }, - - "cmd_2": + "Planning": { - "cmd": "site", - "help": "Permet d'accéder au calendrier" + "cmd_0": + { + "cmd": "cal", + "help": "Permet d'accéder au calendrier" + }, + "cmd_1": + { + "cmd": "jdr", + "help": "Envoie un lien pour créer une partie" + }, + "cmd_2": + { + "cmd": "site", + "help": "Permet d'accéder au calendrier" + }, }, - - }, - - "Presentation": - { - "cmd_0": + "Presentation": { - "cmd": "prez", - "help": "Envoie un lien pour se présenter" + "cmd_0": + { + "cmd": "prez", + "help": "Envoie un lien pour se présenter" + }, }, - }, - "No Category": - { - "cmd_0": { - "cmd": "help", - "help": "Affiche ce message" - }, - } - + "cmd_0": + { + "cmd": "help", + "help": "Affiche ce message" + }, + } } -def GetMaxStrSizeInArray(array:dict,callback=None): - _size=0 +def GetMaxStrSizeInArray(array: dict, callback=None): + _size = 0 for cmd in array: _r = callback(cmd) - if(_r > _size): - _size = _r + if _r > _size: + _size = _r return _size - -async def on_message(event,*args,**kwargs): + +async def on_message(event, *args): if event.content.startswith('hi'): await event.channel.send(f'Hello! Mis a jour : {args}') -async def on_prez(event,*args,**kwargs): - embed = discord.Embed(url="http://presentation.unionrolistes.fr/?webhook=https://discord.com/api/webhooks/875068900612665396/DJusy0eGs9Xyx2os-dodBVfWia2fbhfBzfmnDM9g-30ozoFYAuZBHVXaD9TKaC1wwBwg", description="⬆️ Here is the link to create your presentation.", title="Union Roliste - Presentation", color= 0x0CC1EE) +async def on_prez(event): + embed = discord.Embed( + url="http://presentation.unionrolistes.fr/?webhook=https://discord.com/api/webhooks/875068900612665396/DJusy0eGs9Xyx2os-dodBVfWia2fbhfBzfmnDM9g-30ozoFYAuZBHVXaD9TKaC1wwBwg", + description="⬆️ Here is the link to create your presentation.", title="Union Roliste - Presentation", + color=0x0CC1EE) embed.set_author(name=event.author.display_name, icon_url=event.author.avatar_url) - DATA = ["**:pen_ballpoint: Nom\n**","**:pen_ballpoint: Prenom\n**",":round_pushpin: **Address\n**",":telephone: **N° Telephone\n**", ":postbox: **Code postal\n**","**:computer: Support (Windows / Linux / Mac)\n**","**Expérience en programmation\n**"] + # DATA = ["**:pen_ballpoint: Nom\n**", "**:pen_ballpoint: Prenom\n**", ":round_pushpin: **Address\n**", + # ":telephone: **N° Telephone\n**", ":postbox: **Code postal\n**", + # "**:computer: Support (Windows / Linux / Mac)\n**", "**Expérience en programmation\n**"] + # La variable n'est jamais utilisée. Ceci dit, je la laisse en commentaire, au cas où un futur dev l'utiliserait. + embed.add_field(name="**\n**", value="**───────────────────────────────**", inline=False) - embed.set_footer(text="Union Roliste dev presentation.", icon_url="https://avatars.githubusercontent.com/u/62179928?s=200&v=4") + embed.set_footer(text="Union Roliste dev presentation.", + icon_url="https://avatars.githubusercontent.com/u/62179928?s=200&v=4") embed.set_thumbnail(url="https://avatars.githubusercontent.com/u/62179928?s=200&v=4") - await event.author.send(embed=embed) # envoie un message de presentation privée à l'auteur qui a fait a commandes + await event.author.send(embed=embed) # envoie un message de presentation privée à l'auteur qui a fait a commandes async def on_help(event): embed = discord.Embed(title="Assistance UR-Bot", color=0x000000) - embed.set_author(name="Union des Rôlistes", icon_url="https://cdn.discordapp.com/avatars/1040275175687606372/33d5a8782c1d658caeeae59799e722b0.webp?size=32") + embed.set_author(name="Union des Rôlistes", + icon_url="https://cdn.discordapp.com/avatars/1040275175687606372/33d5a8782c1d658caeeae59799e722b0.webp?size=32") embed.set_footer(text="Soutenez le JDR, Soutenez l'UR !") - embed.set_thumbnail(url="https://avatars.githubusercontent.com/u/62179928?s=200&v=4") # Initialiser le logo de l'UR en haut à droite + embed.set_thumbnail( + url="https://avatars.githubusercontent.com/u/62179928?s=200&v=4") # Initialiser le logo de l'UR en haut à droite first_category = True # Voir le bloc if/else pour comprendre - for category, commands in HELP_DATA.items(): + for category, commands in help_data.items(): # Si l'écriture de l'embed n'en est pas à sa première catégorie (About, General, Présentation, etc.), alors : if not first_category: # Ajouter une ligne qui sépare les catégories entre-elles. diff --git a/Discord-Bot-main/Bot/ur_bot.py b/Discord-Bot-main/Bot/ur_bot.py index 26c0f77..9848c5c 100644 --- a/Discord-Bot-main/Bot/ur_bot.py +++ b/Discord-Bot-main/Bot/ur_bot.py @@ -1,4 +1,4 @@ -import DebugBot +import debug_bot import os import discord from discord.ext import commands @@ -26,7 +26,7 @@ async def on_message(self, message): if message.author == self.user: return - await DebugBot.debug_on_message(message) + await debug_bot.debug_on_message(message) return await BOT.process_commands(message) @@ -34,7 +34,7 @@ async def on_message(self, message): INTENT = discord.Intents.default() INTENT.members = True INTENT.messages = True -BOT = UrBot(command_prefix=DebugBot.event.BOT_PREFIX, intents=INTENT) +BOT = UrBot(command_prefix=debug_bot.event.BOT_PREFIX, intents=INTENT) BOT.remove_command('help') @@ -53,7 +53,7 @@ async def _help(ctx): # Ajouter un underscore évite l'erreur "Shadows built-i """ Appel d'une méthode quand la commande est reçue. """ - await DebugBot.debug_on_help(ctx) + await debug_bot.debug_on_help(ctx) @BOT.command(name="prez") @@ -61,11 +61,11 @@ async def prez(ctx): """ Appel d'une méthode quand la commande est reçue. """ - await DebugBot.debug_on_prez(ctx) + await debug_bot.debug_on_prez(ctx) # Fonction utilisée dans "reload_module". -@DebugBot.update_all_modules +@debug_bot.update_all_modules async def reload_all_modules(): """ Retourne 0. diff --git a/Discord-Bot-main/README.md b/Discord-Bot-main/README.md index 91c1d98..17240e0 100644 --- a/Discord-Bot-main/README.md +++ b/Discord-Bot-main/README.md @@ -2,18 +2,17 @@ ###### doc : https://discordpy.readthedocs.io/en/stable/api.html?highlight=on_message#discord.Guild.get_channel -# Instalation +## Installation -> **Télécharger** ![Docker](docker.com) +> **Télécharger** [Docker](docker.com) > -> **Télécharger** ![Discord-Bot-main](https://github.com/UnionRolistes/Bot_Base/tree/11-cree-une-application-docker-pour-facilit%C3%A9-le-developpement/Discord-Bot-main) +> **Télécharger** [Discord-Bot-main](https://github.com/UnionRolistes/Bot_Base/tree/11-cree-une-application-docker-pour-facilit%C3%A9-le-developpement/Discord-Bot-main) > -> **Lancer le script** ![LaunchInstall.bat](https://github.com/UnionRolistes/Bot_Base/blob/11-cree-une-application-docker-pour-facilit%C3%A9-le-developpement/Discord-Bot-main/Install/LaunchInstall.bat) dans [Powershell](https://learn.microsoft.com/fr-fr/powershell/scripting/overview?view=powershell-7.3) +> **Lancer le script** [LaunchInstall.bat](https://github.com/UnionRolistes/Bot_Base/blob/11-cree-une-application-docker-pour-facilit%C3%A9-le-developpement/Discord-Bot-main/Install/LaunchInstall.bat) dans [Powershell](https://learn.microsoft.com/fr-fr/powershell/scripting/overview?view=powershell-7.3) > -> **Fini !. Le script (LaunchInstall.bat) lancera automatiquement le container et par concequant le bot discord** -> +> **Fini ! Le script (LaunchInstall.bat) lancera automatiquement votre conteneur (puis le bot discord).** > -> **Commandes disponible :** +> **Commandes disponibles :** > > - **$prez** > - **$help** diff --git a/archives/functions.py b/archives/functions.py index 0b60b0b..3dcc46a 100644 --- a/archives/functions.py +++ b/archives/functions.py @@ -2,7 +2,7 @@ Ci-dessous se trouvent les trois commandes qui étaient demandées dans un ticket. Voici une description de ces dernières : • name : change le nickname du bot sur le serveur où est tapée la commande. Le nom initial (qui apparaît sur chaque serveur) ne change pas. Pourtant, il est possible de changer ce dernier. Cependant, Discord y impose une limite (deux changements par heure). ---> Faudrait-il garder la première option ou coder la deuxième ; faire les deux ? +→ Faudrait-il garder la première option ou coder la deuxième ; faire les deux ? • description : change le message d'état de présence du bot. On ne peut malheureusement pas changer la section "À propos de moi" par une commande.