Merge pull request #1 from Fomys/help

Help
This commit is contained in:
Fomys 2018-08-21 12:51:59 +02:00 committed by GitHub
commit 556a4a4035
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 94 additions and 11 deletions

View File

@ -92,6 +92,8 @@ class Guild:
errors = [] errors = []
if "modules" not in self.config["modules"]: if "modules" not in self.config["modules"]:
self.config["modules"].append("modules") self.config["modules"].append("modules")
if "help" not in self.config["modules"]:
self.config["modules"].append("help")
module_to_load = list(set(self.config["modules"])) module_to_load = list(set(self.config["modules"]))
for module in module_to_load: for module in module_to_load:
@ -118,6 +120,7 @@ class Guild:
if not msg.author.bot: if not msg.author.bot:
for module in self.modules: for module in self.modules:
await module.on_message(msg) await module.on_message(msg)
return
class FoBot(discord.Client): class FoBot(discord.Client):

63
modules/help.py Normal file
View File

@ -0,0 +1,63 @@
import discord
import traductions as tr
class MainClass:
name = "modules"
def __init__(self, guild):
self.guild = guild
async def help(self, msg, command, args):
if len(args) == 0:
texte = "Voici l'aide générale du bot:"
for module in self.guild.config["modules"]:
texte += "\n**"
texte += module
texte += "**: "
texte += tr.tr[self.guild.config["lang"]]["modules"][module]["description"]
texte += "\n\tCommandes: "
texte += ", ".join(
[commande for commande in tr.tr[self.guild.config["lang"]]["modules"][module]["help"].keys()])
await msg.channel.send(texte)
return
elif len(args[0].split(":")) == 1:
if args[0] in tr.tr[self.guild.config["lang"]]["modules"].keys():
texte = "Voici l'aide pour le module {module}:".format(module=args[0])
for commande, aide in tr.tr[self.guild.config["lang"]]["modules"][args[0]]["help"].items():
texte += "\n**"
texte += commande
texte += "**: "
texte += aide["description"]
await msg.channel.send(texte)
return
else:
# module non existant
await msg.channel.send(tr.tr[self.guild.config["lang"]]["errors"]["ModuleNotFoundError"]["text"]
.format(prefix=self.guild.config["prefix"], module=args[0]))
return
elif len(args[0].split(":")) == 2:
module, fonction = args[0].split(":")
if module in tr.tr[self.guild.config["lang"]]["modules"].keys():
if fonction in tr.tr[self.guild.config["lang"]]["modules"][module]["help"].keys():
texte = "Aide de la fonction {command}".format(command=fonction)
for exemple in tr.tr[self.guild.config["lang"]]["modules"][module]["help"][fonction]["examples"]:
texte += "\n"
texte += exemple[0].format(prefix=self.guild.config["prefix"])
texte += ": "
texte += exemple[1]
await msg.channel.send(texte)
else:
await msg.channe.send(tr.tr[self.guild.config["lang"]]["errors"]["CommandNotFoundError"].format(command=fonction))
else:
# module non existant
await msg.channel.send(tr.tr[self.guild.config["lang"]]["errors"]["ModuleNotFoundError"]["text"]
.format(prefix=self.guild.config["prefix"], module=module))
return
async def on_message(self, msg):
if msg.content.startswith(self.guild.config["prefix"]):
command, *args = msg.content.lstrip(self.guild.config["prefix"]).split(" ")
if command == "help":
await self.help(msg, command, args)
return

View File

@ -4,23 +4,23 @@ tr = {
"modules": { "modules": {
"modules": { "modules": {
"description": "Permet de gérer les modules.", "description": "Permet de gérer les modules.",
"aide": { "help": {
"list_modules": { "list_modules": {
"description": "Liste tous les modules. Les modules en gras sont activés.", "description": "Liste tous les modules. Les modules en gras sont activés.",
"exemples": [ "examples": [
("`{prefix}list_modules`", "Liste tous les modules"), ("`{prefix}list_modules`", "Liste tous les modules"),
], ],
}, },
"load": { "load": {
"description": "Permet de charger un ou des modules.", "description": "Permet de charger un ou des modules.",
"exemples": [ "examples": [
("`{prefix}load fun`", "Charge le module fun"), ("`{prefix}load fun`", "Charge le module fun"),
("`{prefix}load fun admin`", "Charge les modules fun et admin"), ("`{prefix}load fun admin`", "Charge les modules fun et admin"),
], ],
}, },
"unload": { "unload": {
"description": "Permet de décharger un ou des modules.", "description": "Permet de décharger un ou des modules.",
"exemples": [ "examples": [
("`{prefix}unload fun`", "Décharge le module fun"), ("`{prefix}unload fun`", "Décharge le module fun"),
("`{prefix}unload fun admin`", "Décharge les modules fun et admin"), ("`{prefix}unload fun admin`", "Décharge les modules fun et admin"),
], ],
@ -36,7 +36,7 @@ tr = {
}, },
"config": { "config": {
"description": "Configuration de foBot, doublez le préfixe pour y accéder.", "description": "Configuration de foBot, doublez le préfixe pour y accéder.",
"aide": { "help": {
"lang": { "lang": {
"description": "Modifier la langue", "description": "Modifier la langue",
"examples": [ "examples": [
@ -56,10 +56,10 @@ tr = {
], ],
}, },
"list": { "list": {
"title": "Liste des Paramètres disponibles", "description": "Liste des paramètres disponibles",
"params": { "examples": [
"prefix": "Le préfixe utilisé sur le serveur", ("`{prefix}{prefix}list`", "Liste des paramètres modifiables")
}, ],
}, },
}, },
"lang": "La langue {lang} est maintenant utilisée.", "lang": "La langue {lang} est maintenant utilisée.",
@ -75,6 +75,19 @@ tr = {
"add_master_admin": "L'utilisateur {user} est maintenant un administrateur du bot.", "add_master_admin": "L'utilisateur {user} est maintenant un administrateur du bot.",
"del_master_admin": "L'utilisateur {user} n'est plus un administrateur du bot.", "del_master_admin": "L'utilisateur {user} n'est plus un administrateur du bot.",
}, },
"help": {
"description": "Active la commande d'aide",
"help": {
"help": {
"description": "Permat d'aficher de l'aide",
"examples": [
("`{prefix}help`", "Affiche l'aide générale"),
("`{prefix}help config`", "Liste les commandes disponibles dans le module config"),
("`{prefix}help config:lang`", "Affiche l'aide avancé de la commande lang u module config"),
],
},
},
},
}, },
"errors": { "errors": {
"LangNotFoundError": "La langue {lang} est introuvable, tapez {prefix}list_lang pour voir les langues " "LangNotFoundError": "La langue {lang} est introuvable, tapez {prefix}list_lang pour voir les langues "
@ -83,7 +96,8 @@ tr = {
"ModuleNotFoundOrDeactivatedError": { "ModuleNotFoundOrDeactivatedError": {
"title": "Erreur", "title": "Erreur",
"name": "Erreur lors de la désactivation du module {module}:", "name": "Erreur lors de la désactivation du module {module}:",
"value": "Celui-ci n'existe pas ou n'es pas activé. Tapez {prefix}list_modules pour voir la liste des modules disponibles.", "value": "Celui-ci n'existe pas ou n'es pas activé. Tapez {prefix}list_modules pour voir la liste des "
"modules disponibles.",
}, },
"ModuleNotFoundError": { "ModuleNotFoundError": {
@ -91,13 +105,16 @@ tr = {
"name": "Erreur lors de l'activation du module {module}:", "name": "Erreur lors de l'activation du module {module}:",
"value": "Celui-ci n'existe pas. Tapez {prefix}list_modules pour voir la liste des modules " "value": "Celui-ci n'existe pas. Tapez {prefix}list_modules pour voir la liste des modules "
"disponibles.", "disponibles.",
"text": "Le module {module} n'existe pas, tapez {prefix}list_modules pour voir la liste des modules "
"disponibles.",
}, },
"ForbiddenConfigError": "Ce paramètre ne peut pas être modifié directement.", "ForbiddenConfigError": "Ce paramètre ne peut pas être modifié directement.",
"UnknownConfigError": "Le paramètre demandé n'existe pas. Utilisez {prefix}list pour lister les paramètres " "UnknownConfigError": "Le paramètre demandé n'existe pas. Utilisez {prefix}list pour lister les paramètres "
"modifiables.", "modifiables.",
"NotEnoughParamError": "Il manque un ou plusieurs parametres à la commande.", "NotEnoughParamError": "Il manque un ou plusieurs parametres à la commande.",
"NoMentionsError": "Vous devez mentioner un utilisateur pour le rajouter à la liste des administrateurs " "NoMentionsError": "Vous devez mentioner un utilisateur pour le rajouter à la liste des administrateurs "
"du bot." "du bot.",
"CommandNotFoundError": "La commande {command} n'existe pas."
}, },
}, },
} }