diff --git a/.gitignore b/.gitignore
index a2f5f70..2c1c701 100644
--- a/.gitignore
+++ b/.gitignore
@@ -13,6 +13,7 @@ private.py
# other
*.logs
+*.log
# Byte-compiled / optimized / DLL files
__pycache__/
diff --git a/cogs/Admin.py b/cogs/Admin.py
index eeaed28..4c8b64a 100644
--- a/cogs/Admin.py
+++ b/cogs/Admin.py
@@ -67,7 +67,8 @@ class Admin(commands.Cog):
@groupExtra(name='say', invoke_without_command=True, category='text',
description=Texts('admin_help').get('_say'),
- short_doc=Texts('admin_help').get('_say__short'))
+ help=Texts('admin_help').get('_say__short'),
+ usage=Texts('admin_help').get('_say__usage'))
async def _say(self, ctx: commands.Context, *, content: str):
if ctx.invoked_subcommand is None:
try:
@@ -79,7 +80,8 @@ class Admin(commands.Cog):
@_say.command(name='edit',
description=Texts('admin_help').get('_say_edit'),
- short_doc=Texts('admin_help').get('_say_edit__short'))
+ help=Texts('admin_help').get('_say_edit__short'),
+ usage=Texts('admin_help').get('_say_edit__usage'))
async def _say_edit(self, ctx: commands.Context, message_id: int, *,
content: str):
try:
@@ -98,7 +100,8 @@ class Admin(commands.Cog):
@_say.command(name='to',
description=Texts('admin_help').get('_say_to'),
- short_doc=Texts('admin_help').get('_say_to__short'))
+ help=Texts('admin_help').get('_say_to__short'),
+ usage=Texts('admin_help').get('_say_to__usage'))
async def _say_to(self, ctx: commands.Context,
channel: Union[discord.TextChannel, discord.User], *,
content):
@@ -113,7 +116,8 @@ class Admin(commands.Cog):
@commandExtra(name='ban', category='administration',
description=Texts('admin_help').get('_ban'),
- short_doc=Texts('admin_help').get('_ban__short'))
+ help=Texts('admin_help').get('_ban__short'),
+ usage=Texts('admin_help').get('_ban__usage'))
async def _ban(self, ctx: commands.Context, user: discord.Member, *,
reason=""):
try:
@@ -142,7 +146,8 @@ class Admin(commands.Cog):
@commandExtra(name='kick', category='administration',
description=Texts('admin_help').get('_kick'),
- short_doc=Texts('admin_help').get('_kick__short'))
+ help=Texts('admin_help').get('_kick__short'),
+ usage=Texts('admin_help').get('_kick__usage'))
async def _kick(self, ctx: commands.Context, user: discord.Member, *,
reason=""):
try:
@@ -171,7 +176,8 @@ class Admin(commands.Cog):
@commandExtra(name='clear', category='text',
description=Texts('admin_help').get('_clear'),
- short_doc=Texts('admin_help').get('_clear__short'))
+ help=Texts('admin_help').get('_clear__short'),
+ usage=Texts('admin_help').get('_clear__usage'))
async def _clear(self, ctx: commands.Context, count: int):
try:
await ctx.message.delete()
@@ -183,14 +189,16 @@ class Admin(commands.Cog):
@groupExtra(name='react', category='text',
description=Texts('admin_help').get('_react'),
- short_doc=Texts('admin_help').get('_react__short'))
+ help=Texts('admin_help').get('_react__short'),
+ usage=Texts('admin_help').get('_react__usage'))
async def _react(self, ctx: commands.Context):
if ctx.invoked_subcommand is None:
await ctx.send_help('react')
@_react.command(name='add',
description=Texts('admin_help').get('_react_add'),
- short_doc=Texts('admin_help').get('_react_add__short'))
+ help=Texts('admin_help').get('_react_add__short'),
+ usage=Texts('admin_help').get('_react_add__usage'))
async def _react_add(self, ctx: commands.Context, message_id: int, *,
emojis: str):
emojis: list = emojis.split(' ')
@@ -208,7 +216,8 @@ class Admin(commands.Cog):
@_react.command(name='clear',
description=Texts('admin_help').get('_react_remove'),
- short_doc=Texts('admin_help').get('_react_remove__short'))
+ help=Texts('admin_help').get('_react_remove__short'),
+ usage=Texts('admin_help').get('_react_remove__usage'))
async def _react_remove(self, ctx: commands.Context, message_id: int):
try:
message: discord.Message = await ctx.channel.fetch_message(
@@ -224,7 +233,8 @@ class Admin(commands.Cog):
@groupExtra(name='delete', invoke_without_command=True,
category='text',
description=Texts('admin_help').get('_delete'),
- short_doc=Texts('admin_help').get('_delete__short'))
+ help=Texts('admin_help').get('_delete__short'),
+ usage=Texts('admin_help').get('_delete___usage'))
async def _delete(self, ctx: commands.Context, message_id: int):
try:
await ctx.message.delete()
@@ -242,7 +252,8 @@ class Admin(commands.Cog):
@_delete.command(name='from', aliases=['to', 'in'],
description=Texts('admin_help').get('_delete_from'),
- short_doc=Texts('admin_help').get('_delete_from__short'))
+ help=Texts('admin_help').get('_delete_from__short'),
+ usage=Texts('admin_help').get('_delete_from__usage'))
async def _delete_from(self, ctx: commands.Context,
channel: discord.TextChannel, message_id: int):
try:
@@ -308,7 +319,8 @@ class Admin(commands.Cog):
@groupExtra(name='warn', aliases=['warns'], category='administration',
description=Texts('admin_help').get('_warn'),
- short_doc=Texts('admin_help').get('_warn__short'))
+ help=Texts('admin_help').get('_warn__short'),
+ usage=Texts('admin_help').get('_warn__usage'))
async def _warn(self, ctx: commands.Context):
await ctx.trigger_typing()
if ctx.invoked_subcommand is None:
@@ -322,7 +334,8 @@ class Admin(commands.Cog):
@_warn.command(name='add', aliases=['new'],
description=Texts('admin_help').get('_warn_new'),
- short_doc=Texts('admin_help').get('_warn_new__short'))
+ help=Texts('admin_help').get('_warn_new__short'),
+ usage=Texts('admin_help').get('_warn_new__usage'))
async def _warn_new(self, ctx: commands.Context, member: discord.Member,
*, reason="N/A"):
member = await ctx.guild.fetch_member(member.id)
@@ -403,7 +416,8 @@ class Admin(commands.Cog):
@_warn.command(name='remove', aliases=['revoke', 'del', 'delete'],
description=Texts('admin_help').get('_warn_remove'),
- short_doc=Texts('admin_help').get('_warn_remove__short'))
+ help=Texts('admin_help').get('_warn_remove__short'),
+ usage=Texts('admin_help').get('_warn_remove__usage'))
async def _warn_remove(self, ctx: commands.Context, warn_id: int):
warn = self.bot.database.session \
.query(WarnModel) \
@@ -417,7 +431,8 @@ class Admin(commands.Cog):
@_warn.command(name='show', aliases=['list', 'all'],
description=Texts('admin_help').get('_warn_show'),
- short_doc=Texts('admin_help').get('_warn_show__short'))
+ help=Texts('admin_help').get('_warn_show__short'),
+ usage=Texts('admin_help').get('_warn_show__usage'))
async def _warn_show(self, ctx: commands.Context, member: discord.Member):
warns_list, warns = await self.get_warn(ctx, member)
@@ -430,7 +445,8 @@ class Admin(commands.Cog):
@_warn.command(name='edit', aliases=['change', 'modify'],
description=Texts('admin_help').get('_warn_edit'),
- short_doc=Texts('admin_help').get('_warn_edit__short'))
+ help=Texts('admin_help').get('_warn_edit__short'),
+ usage=Texts('admin_help').get('_warn_edit__usage'))
async def _warn_edit(self, ctx: commands.Context, warn_id: int, *, reason):
warn = self.bot.database.session \
.query(WarnModel) \
@@ -448,7 +464,8 @@ class Admin(commands.Cog):
@commandExtra(name='language', aliases=['lang', 'langue', 'langage'],
category='server',
description=Texts('admin_help').get('_language'),
- short_doc=Texts('admin_help').get('_language__short'))
+ help=Texts('admin_help').get('_language__short'),
+ usage=Texts('admin_help').get('_language__usage'))
async def _language(self, ctx: commands.Context, locale: str):
available = self.bot.database.session \
.query(LangModel.value) \
@@ -481,14 +498,16 @@ class Admin(commands.Cog):
@groupExtra(name='prefix', aliases=['prefixes'], category='server',
description=Texts('admin_help').get('_prefix'),
- short_doc=Texts('admin_help').get('_prefix_short'))
+ help=Texts('admin_help').get('_prefix_short'),
+ usage=Texts('admin_help').get('_prefix__usage'))
async def _prefix(self, ctx: commands.Context):
if ctx.invoked_subcommand is None:
await ctx.send_help('prefix')
@_prefix.command(name='add', aliases=['set', 'new'],
description=Texts('admin_help').get('_prefix_add'),
- short_doc=Texts('admin_help').get('_prefix_add__short'))
+ help=Texts('admin_help').get('_prefix_add__short'),
+ usage=Texts('admin_help').get('_prefix_add__usage'))
async def _prefix_add(self, ctx: commands.Context, prefix: str):
if str(ctx.guild.id) in self.bot.prefixes:
prefixes = self.bot.prefixes.get(
@@ -523,8 +542,8 @@ class Admin(commands.Cog):
@_prefix.command(name='remove', aliases=['drop', 'del', 'delete'],
description=Texts('admin_help').get('_prefix_remove'),
- short_doc=Texts('admin_help').get(
- '_prefix_remove__short'))
+ help=Texts('admin_help').get('_prefix_remove__short'),
+ usage=Texts('admin_help').get('_prefix_remove__usage'))
async def _prefix_remove(self, ctx: commands.Context, prefix: str):
if str(ctx.guild.id) in self.bot.prefixes:
prefixes = self.bot.prefixes.get(
@@ -554,7 +573,8 @@ class Admin(commands.Cog):
@_prefix.command(name='list', aliases=['show', 'all'],
description=Texts('admin_help').get('_prefix_list'),
- short_doc=Texts('admin_help').get('_prefix_list__short'))
+ help=Texts('admin_help').get('_prefix_list__short'),
+ usage=Texts('admin_help').get('_prefix_list__usage'))
async def _prefix_list(self, ctx: commands.Context):
extras = ['.']
if ctx.message.guild is not None:
diff --git a/cogs/Help.py b/cogs/Help.py
index 60337e1..f918673 100644
--- a/cogs/Help.py
+++ b/cogs/Help.py
@@ -16,28 +16,24 @@ log = logging.getLogger(__name__)
class HelpCommand(commands.HelpCommand):
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
- self.ignore_cogs = ["Monitoring", "Help", "Jishaku"]
- self.owner_cogs = ["Admin"]
+ self.ignore_cogs = ["Monitoring", "Help"]
+ self.owner_cogs = ["Jishaku"]
+ self.admin_cogs = ["Admin"]
- def common_command_formatting(self, emb, command):
+ def common_command_formatting(self, e, command):
prefix = self.context.prefix if str(self.context.bot.user.id) not in self.context.prefix else f"@{self.context.bot.user.name}"
- emb.title = self.get_command_signature(command)
+ e.title = self.get_command_signature(command)
+ e.description = command.description
- emb.description = command.description
- usage = command.description + "todo: usage"
-
- try:
- usg = command.description + "todo: usage"
- emb.add_field(
- name=usage,
- value=f"{prefix}{command.qualified_name} " + usg
- )
- except KeyError:
- emb.add_field(
- name=usage,
- value=f"{prefix}{command.qualified_name}"
- )
+ e.add_field(
+ name="TODO: Text.params :",
+ value=command.usage
+ )
+ e.add_field(
+ name="TODO: Text.usage :",
+ value=f"{prefix}{command.qualified_name} " + command.usage
+ )
aliases = "`" + '`, `'.join(command.aliases) + "`"
if aliases == "``":
@@ -46,7 +42,7 @@ class HelpCommand(commands.HelpCommand):
).get(
'command_help.no_aliases'
)
- emb.add_field(
+ e.add_field(
name=Texts(
'help', self.context
).get(
@@ -55,7 +51,7 @@ class HelpCommand(commands.HelpCommand):
value=aliases
)
- return emb
+ return e
async def send_bot_help(self, mapping):
owners = self.context.bot.owners
@@ -129,14 +125,14 @@ class HelpCommand(commands.HelpCommand):
pages[cmd.category] \
+= f"{cmd.name}" \
+ ' ' * int(17 - len(cmd.name)) \
- + f":: {cmd.short_doc}\n"
+ + f":: {cmd.help}\n"
if isinstance(cmd, commands.Group):
for group_command in cmd.commands:
pages[cmd.category] \
+= f"━ {group_command.name}" \
+ ' ' * int(15 - len(group_command.name)) \
- + f":: {cmd.short_doc}\n"
+ + f":: {cmd.help}\n"
for e in pages:
pages[e] += "```"
formatted = []
diff --git a/cogs/Logs.py b/cogs/Logs.py
index 6dbd153..b86c991 100644
--- a/cogs/Logs.py
+++ b/cogs/Logs.py
@@ -245,7 +245,7 @@ class Logs(commands.Cog):
@commandExtra(name='commandstats', hidden=True, category='misc',
description=Texts('logs_help').get('_commandstats'),
- short_doc=Texts('logs_help').get('_commandstats__short'))
+ help=Texts('logs_help').get('_commandstats__short'))
@commands.is_owner()
async def _commandstats(self, ctx, limit=20):
counter = self.bot.command_stats
@@ -262,7 +262,7 @@ class Logs(commands.Cog):
@commandExtra(name='socketstats', hidden=True, category='misc',
description=Texts('logs_help').get('_socketstats'),
- short_doc=Texts('logs_help').get('_socketstats__short'))
+ help=Texts('logs_help').get('_socketstats__short'))
@commands.is_owner()
async def _socketstats(self, ctx):
delta = datetime.datetime.utcnow() - self.bot.uptime
@@ -274,7 +274,7 @@ class Logs(commands.Cog):
@commandExtra(name='uptime', category='misc',
description=Texts('logs_help').get('_uptime'),
- short_doc=Texts('logs_help').get('_uptime__short'))
+ help=Texts('logs_help').get('_uptime__short'))
async def _uptime(self, ctx):
uptime = humanize.naturaltime(
datetime.datetime.utcnow() - self.bot.uptime)
diff --git a/cogs/Polls.py b/cogs/Polls.py
index 2f77f78..23bab84 100644
--- a/cogs/Polls.py
+++ b/cogs/Polls.py
@@ -207,14 +207,14 @@ class Polls(commands.Cog):
@groupExtra(name='poll', aliases=['sondage'],
category='poll',
description=Texts('poll_help').get('_poll'),
- short_doc=Texts('poll_help').get('_poll__short'))
+ help=Texts('poll_help').get('_poll__short'))
async def _poll(self, ctx: commands.Context):
if ctx.invoked_subcommand is None:
await ctx.send_help('sondage')
@_poll.group(name='create', aliases=['new', 'nouveau'],
description=Texts('poll_help').get('_poll_create'),
- short_doc=Texts('poll_help').get('_poll_create__short'))
+ help=Texts('poll_help').get('_poll_create__short'))
async def _poll_create(self, ctx: commands.Context, *, poll: str):
is_anonymous = '--anonyme' in poll
poll = poll.replace('--anonyme', '')
diff --git a/cogs/Useful.py b/cogs/Useful.py
index cbeb5ba..47d78db 100644
--- a/cogs/Useful.py
+++ b/cogs/Useful.py
@@ -70,7 +70,7 @@ class Useful(commands.Cog):
@commandExtra(name='iplocalise', category='network',
description=Texts('useful_help').get('_iplocalise'),
- short_doc=Texts('useful_help').get('_iplocalise__short'))
+ help=Texts('useful_help').get('_iplocalise__short'))
async def _iplocalise(self, ctx: commands.Context, addr, ip_type=''):
addr = re.sub(r'http(s?)://', '', addr)
addr = addr[:-1] if addr.endswith('/') else addr
@@ -136,7 +136,7 @@ class Useful(commands.Cog):
@commandExtra(name='getheaders', category='network',
description=Texts('useful_help').get('_getheaders'),
- short_doc=Texts('useful_help').get('_getheaders__short'))
+ help=Texts('useful_help').get('_getheaders__short'))
async def _getheaders(self, ctx: commands.Context, addr: str):
if (addr.startswith('http') or addr.startswith('ftp')) is not True:
addr = f"http://{addr}"
@@ -169,7 +169,7 @@ class Useful(commands.Cog):
@commandExtra(name='git', aliases=['sources', 'source', 'github'],
category='misc',
description=Texts('useful_help').get('_git'),
- short_doc=Texts('useful_help').get('_git__short'))
+ help=Texts('useful_help').get('_git__short'))
async def _git(self, ctx):
e = discord.Embed(
title=Texts('useful', ctx).get('git repo'),
@@ -186,7 +186,7 @@ class Useful(commands.Cog):
@commandExtra(name='quote', category='misc',
description=Texts('useful_help').get('_quote'),
- short_doc=Texts('useful_help').get('_quote__short'))
+ help=Texts('useful_help').get('_quote__short'))
async def _quote(self, ctx, message_id: discord.Message):
e = discord.Embed(
colour=message_id.author.colour,
@@ -210,7 +210,7 @@ class Useful(commands.Cog):
@commandExtra(name='ping', category='network',
description=Texts('useful_help').get('_ping'),
- short_doc=Texts('useful_help').get('_ping__short'))
+ help=Texts('useful_help').get('_ping__short'))
async def _ping(self, ctx: commands.Context):
start = time.perf_counter()
await ctx.trigger_typing()
@@ -230,7 +230,7 @@ class Useful(commands.Cog):
@commandExtra(name='info', aliases=['about'], category='misc',
description=Texts('useful_help').get('_info'),
- short_doc=Texts('useful_help').get('_info__short'))
+ help=Texts('useful_help').get('_info__short'))
async def _info(self, ctx: commands.Context):
proc = psutil.Process()
total, python = self.fetch_info()
@@ -315,7 +315,7 @@ class Useful(commands.Cog):
@commandExtra(name='credits', aliases=['contributors', 'authors'],
category='misc',
description=Texts('useful_help').get('_credits'),
- short_doc=Texts('useful_help').get('_credits__short'))
+ help=Texts('useful_help').get('_credits__short'))
async def _credits(self, ctx: commands.Context):
e = discord.Embed(
title=Texts('useful', ctx).get('Contributors'),
diff --git a/cogs/User.py b/cogs/User.py
index a1f44ec..8ed7578 100644
--- a/cogs/User.py
+++ b/cogs/User.py
@@ -21,14 +21,14 @@ class User(commands.Cog):
@groupExtra(name='alias', aliases=['aliases'], category='alias',
description=Texts('user_help').get('_alias'),
- short_doc=Texts('user_help').get('_alias__short'))
+ help=Texts('user_help').get('_alias__short'))
async def _alias(self, ctx: commands.Context):
if ctx.invoked_subcommand is None:
await ctx.send_help('alias')
@_alias.command(name='add', aliases=['set', 'new'],
description=Texts('user_help').get('_alias_add'),
- short_doc=Texts('user_help').get('_alias_add__short'))
+ help=Texts('user_help').get('_alias_add__short'))
async def _alias_add(self, ctx: commands.Context, *, user_alias: str):
is_global = False
if '--global' in user_alias:
@@ -57,13 +57,13 @@ class User(commands.Cog):
@_alias.command(name='remove', aliases=['drop', 'del', 'delete'],
description=Texts('user_help').get('_alias_remove'),
- short_doc=Texts('user_help').get('_alias_remove__short'))
+ help=Texts('user_help').get('_alias_remove__short'))
async def _alias_remove(self, ctx: commands.Context, prefix: str):
...
@_alias.command(name='list', aliases=['show', 'all'],
description=Texts('user_help').get('_alias_list'),
- short_doc=Texts('user_help').get('_alias_list__short'))
+ help=Texts('user_help').get('_alias_list__short'))
async def _alias_list(self, ctx: commands.Context):
...
diff --git a/extras/locales/en/LC_MESSAGES/admin_help.po b/extras/locales/en/LC_MESSAGES/admin_help.po
index 26257ac..94d24bd 100644
--- a/extras/locales/en/LC_MESSAGES/admin_help.po
+++ b/extras/locales/en/LC_MESSAGES/admin_help.po
@@ -14,79 +14,239 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: pygettext.py 1.5\n"
+###########################################################################
+########################## SAY ########################################
+###########################################################################
msgid '_say'
msgstr ''
+msgid '_say_short'
+msgstr '_say_short'
+
+msgid '_say_usage'
+msgstr '_say_usage'
+
+###########################################################################
+
msgid '_say_edit'
msgstr ''
-msgid '_say_to'
+msgid '_say_edit__help'
+msgstr ''
+
+msgid '_say_edit__usage'
msgstr ''
###########################################################################
+msgid '_say_to'
+msgstr ''
+
+msgid '_say_to__help'
+msgstr ''
+
+msgid '_say_to__usage'
+msgstr ''
+
+###########################################################################
+########################## BAN ########################################
+###########################################################################
msgid '_ban'
msgstr ''
+msgid '_ban__help'
+msgstr ''
+
+msgid '_ban__usage'
+msgstr ''
+
+###########################################################################
+########################## KICK #######################################
###########################################################################
msgid '_kick'
msgstr ''
+msgid '_kick__help'
+msgstr ''
+
+msgid '_kick__usage'
+msgstr ''
+
+###########################################################################
+########################## CLEAR ######################################
###########################################################################
msgid '_clear'
msgstr ''
+msgid '_clear__help'
+msgstr ''
+
+msgid '_clear__usage'
+msgstr ''
+
+###########################################################################
+########################## REACT ######################################
###########################################################################
msgid '_react'
msgstr ''
+msgid '_react__help'
+msgstr ''
+
+msgid '_react__usage'
+msgstr ''
+
+###########################################################################
+
msgid '_react_remove'
msgstr ''
+msgid '_react_remove__help'
+msgstr ''
+
+msgid '_react_remove__usage'
+msgstr ''
+
+###########################################################################
+########################## DELETE #####################################
###########################################################################
msgid '_delete'
msgstr ''
+msgid '_delete__help'
+msgstr ''
+
+msgid '_delete__usage'
+msgstr ''
+
+###########################################################################
+
msgid '_delete_from'
msgstr ''
+msgid '_delete_from__help'
+msgstr ''
+
+msgid '_delete_from__usage'
+msgstr ''
+
+###########################################################################
+########################## WARN #######################################
###########################################################################
msgid '_warn'
msgstr ''
+msgid '_warn__help'
+msgstr ''
+
+msgid '_warn__usage'
+msgstr ''
+
+###########################################################################
+
msgid '_warn_new'
msgstr ''
+msgid '_warn_new__help'
+msgstr ''
+
+msgid '_warn_new__usage'
+msgstr ''
+
+###########################################################################
+
msgid '_warn_remove'
msgstr ''
+msgid '_warn_remove__help'
+msgstr ''
+
+msgid '_warn_remove__usage'
+msgstr ''
+
+###########################################################################
+
msgid '_warn_show'
msgstr ''
+msgid '_warn_show__help'
+msgstr ''
+
+msgid '_warn_show__usage'
+msgstr ''
+
+###########################################################################
+
msgid '_warn_edit'
msgstr ''
+msgid '_warn_edit__help'
+msgstr ''
+
+msgid '_warn_edit__usage'
+msgstr ''
+
+###########################################################################
+########################## LANGUAGE ###################################
###########################################################################
msgid '_language'
msgstr ''
+msgid '_language__help'
+msgstr ''
+
+msgid '_language__usage'
+msgstr ''
+
+###########################################################################
+########################## PREFIX #####################################
###########################################################################
msgid '_prefix'
msgstr ''
+msgid '_prefix__help'
+msgstr ''
+
+msgid '_prefix__usage'
+msgstr ''
+
+###########################################################################
+
msgid '_prefix_add'
msgstr ''
+msgid '_prefix_add__help'
+msgstr ''
+
+msgid '_prefix_add__usage'
+msgstr ''
+
+###########################################################################
+
msgid '_prefix_remove'
msgstr ''
+msgid '_prefix_remove__help'
+msgstr ''
+
+msgid '_prefix_remove__usage'
+msgstr ''
+
+###########################################################################
+
msgid '_prefix_list'
-msgstr ''
\ No newline at end of file
+msgstr ''
+
+msgid '_prefix_list__help'
+msgstr ''
+
+msgid '_prefix_list__usage'
+msgstr ''
diff --git a/extras/locales/fr/LC_MESSAGES/admin_help.po b/extras/locales/fr/LC_MESSAGES/admin_help.po
index 26257ac..58af405 100644
--- a/extras/locales/fr/LC_MESSAGES/admin_help.po
+++ b/extras/locales/fr/LC_MESSAGES/admin_help.po
@@ -14,79 +14,239 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: pygettext.py 1.5\n"
+###########################################################################
+########################## SAY ########################################
+###########################################################################
msgid '_say'
-msgstr ''
+msgstr 'Permet de faire en sorte que le TuxBot envoi votre message'
-msgid '_say_edit'
-msgstr ''
+msgid '_say__short'
+msgstr 'Fait parler TuxBot'
-msgid '_say_to'
-msgstr ''
+msgid '_say_usage'
+msgstr '[sous-commande] <message>'
###########################################################################
-msgid '_ban'
-msgstr ''
+msgid '_say_edit'
+msgstr "Permet de modifier le contenu d'un message envoyé par TuxBot"
+msgid '_say_edit__short'
+msgstr 'Edite un message envoyé par le TuxBot'
+
+msgid '_say_edit__usage'
+msgstr '<ID/Lien du message> <message>'
+
+###########################################################################
+
+msgid '_say_to'
+msgstr "Permet de faire en sorte que le TuxBot envoi votre message dans un autre salon ou en MP à quelqu'un"
+
+msgid '_say_to__short'
+msgstr 'Fait parler TuxBot dans un autre salon'
+
+msgid '_say_to__usage'
+msgstr "<ID/Mention du salon ou ID/Mention d'un membre> <message>"
+
+###########################################################################
+########################## BAN ########################################
+###########################################################################
+msgid '_ban'
+msgstr 'Permet de bannir un membre'
+
+msgid '_ban__short'
+msgstr 'Bannir un membre'
+
+msgid '_ban__usage'
+msgstr '<ID/Mention du membre>'
+
+###########################################################################
+########################## KICK #######################################
###########################################################################
msgid '_kick'
-msgstr ''
+msgstr "Permet d'expulser un membre"
+msgid '_kick__short'
+msgstr 'Expulser un membre'
+
+msgid '_kick__usage'
+msgstr '<ID/Mention du membre>'
+
+###########################################################################
+########################## CLEAR ######################################
###########################################################################
msgid '_clear'
msgstr ''
+msgid '_clear__short'
+msgstr ''
+
+msgid '_clear__usage'
+msgstr ''
+
+###########################################################################
+########################## REACT ######################################
###########################################################################
msgid '_react'
msgstr ''
+msgid '_react__short'
+msgstr ''
+
+msgid '_react__usage'
+msgstr ''
+
+###########################################################################
+
msgid '_react_remove'
msgstr ''
+msgid '_react_remove__short'
+msgstr ''
+
+msgid '_react_remove__usage'
+msgstr ''
+
+###########################################################################
+########################## DELETE #####################################
###########################################################################
msgid '_delete'
msgstr ''
+msgid '_delete__short'
+msgstr ''
+
+msgid '_delete__usage'
+msgstr ''
+
+###########################################################################
+
msgid '_delete_from'
msgstr ''
+msgid '_delete_from__short'
+msgstr ''
+
+msgid '_delete_from__usage'
+msgstr ''
+
+###########################################################################
+########################## WARN #######################################
###########################################################################
msgid '_warn'
msgstr ''
+msgid '_warn__short'
+msgstr ''
+
+msgid '_warn__usage'
+msgstr ''
+
+###########################################################################
+
msgid '_warn_new'
msgstr ''
+msgid '_warn_new__short'
+msgstr ''
+
+msgid '_warn_new__usage'
+msgstr ''
+
+###########################################################################
+
msgid '_warn_remove'
msgstr ''
+msgid '_warn_remove__short'
+msgstr ''
+
+msgid '_warn_remove__usage'
+msgstr ''
+
+###########################################################################
+
msgid '_warn_show'
msgstr ''
+msgid '_warn_show__short'
+msgstr ''
+
+msgid '_warn_show__usage'
+msgstr ''
+
+###########################################################################
+
msgid '_warn_edit'
msgstr ''
+msgid '_warn_edit__short'
+msgstr ''
+
+msgid '_warn_edit__usage'
+msgstr ''
+
+###########################################################################
+########################## LANGUAGE ###################################
###########################################################################
msgid '_language'
msgstr ''
+msgid '_language__short'
+msgstr ''
+
+msgid '_language__usage'
+msgstr ''
+
+###########################################################################
+########################## PREFIX #####################################
###########################################################################
msgid '_prefix'
msgstr ''
+msgid '_prefix__short'
+msgstr ''
+
+msgid '_prefix__usage'
+msgstr ''
+
+###########################################################################
+
msgid '_prefix_add'
msgstr ''
+msgid '_prefix_add__short'
+msgstr ''
+
+msgid '_prefix_add__usage'
+msgstr ''
+
+###########################################################################
+
msgid '_prefix_remove'
msgstr ''
+msgid '_prefix_remove__short'
+msgstr ''
+
+msgid '_prefix_remove__usage'
+msgstr ''
+
+###########################################################################
+
msgid '_prefix_list'
-msgstr ''
\ No newline at end of file
+msgstr ''
+
+msgid '_prefix_list__short'
+msgstr ''
+
+msgid '_prefix_list__usage'
+msgstr ''
diff --git a/logs/tuxbot.log b/logs/tuxbot.log
index 04c3cb3..e69de29 100644
--- a/logs/tuxbot.log
+++ b/logs/tuxbot.log
@@ -1,19 +0,0 @@
-[INFO ] [2020-01-05 01:27:19] discord.client: logging in using static token
-[INFO ] [2020-01-05 01:27:21] discord.gateway: Shard ID 0 has sent the IDENTIFY payload.
-[INFO ] [2020-01-05 01:27:21] discord.gateway: Shard ID 0 has connected to Gateway: ["gateway-prd-main-9bmr",{"micros":437974,"calls":["discord-sessions-prd-1-19",{"micros":435593,"calls":["start_session",{"micros":38434,"calls":["api-prd-main-m577",{"micros":35095,"calls":["get_user",{"micros":1858},"add_authorized_ip",{"micros":1746},"get_guilds",{"micros":2400},"coros_wait",{"micros":2}]}]},"guilds_connect",{"micros":73,"calls":[]},"presence_connect",{"micros":1,"calls":[]}]}]}] (Session ID: 821ba51666f198bfd1e13b0e1b75fc84).
-[INFO ] [2020-01-05 01:27:30] discord.state: Processed a chunk for 462 members in guild ID 280805240977227776.
-[INFO ] [2020-01-05 01:27:30] discord.state: Processed a chunk for 794 members in guild ID 331981755177238530.
-[INFO ] [2020-01-05 01:27:30] discord.state: Processed a chunk for 1000 members in guild ID 296698073177128962.
-[INFO ] [2020-01-05 01:27:31] discord.state: Processed a chunk for 1000 members in guild ID 296698073177128962.
-[INFO ] [2020-01-05 01:27:31] discord.state: Processed a chunk for 1000 members in guild ID 296698073177128962.
-[INFO ] [2020-01-05 01:27:32] discord.state: Processed a chunk for 1000 members in guild ID 296698073177128962.
-[INFO ] [2020-01-05 01:27:32] discord.state: Processed a chunk for 1000 members in guild ID 296698073177128962.
-[INFO ] [2020-01-05 01:27:33] discord.state: Processed a chunk for 1000 members in guild ID 296698073177128962.
-[INFO ] [2020-01-05 01:27:33] discord.state: Processed a chunk for 1000 members in guild ID 296698073177128962.
-[INFO ] [2020-01-05 01:27:34] discord.state: Processed a chunk for 1000 members in guild ID 296698073177128962.
-[INFO ] [2020-01-05 01:27:34] discord.state: Processed a chunk for 842 members in guild ID 296698073177128962.
-[INFO ] [2020-01-05 01:27:36] cogs.Logs: 2020-01-05 00:27:55.614000: Romain#5117 in #tuxbot-test (Gnous): <@!301062143942590465> help Logs
-[INFO ] [2020-01-05 01:30:14] discord.client: Cleaning up tasks.
-[INFO ] [2020-01-05 01:30:14] discord.client: Cleaning up after 6 tasks.
-[INFO ] [2020-01-05 01:30:15] discord.client: All tasks finished cancelling.
-[INFO ] [2020-01-05 01:30:15] discord.client: Closing the event loop.
diff --git a/utils/extra.py b/utils/extra.py
index 395e2c4..2ac9372 100644
--- a/utils/extra.py
+++ b/utils/extra.py
@@ -5,6 +5,8 @@ class commandsPlus(commands.Command):
def __init__(self, func, **kwargs):
super().__init__(func, **kwargs)
self.category = kwargs.get("category", 'other')
+ self.help = kwargs.get("help", 'No Help Provided')
+ self.usage = kwargs.get("usage", 'No Usage Provided')
def commandExtra(*args, **kwargs):
@@ -15,6 +17,8 @@ class GroupPlus(commands.Group):
def __init__(self, func, **kwargs):
super().__init__(func, **kwargs)
self.category = kwargs.get("category", 'other')
+ self.help = kwargs.get("help", 'No Help Provided')
+ self.usage = kwargs.get("usage", 'No Usage Provided')
def groupExtra(*args, **kwargs):