aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar mathsman5133 <[email protected]>2020-03-31 20:05:28 +1100
committerGravatar mathsman5133 <[email protected]>2020-03-31 20:05:28 +1100
commit1f68c35a0343c99c1364eba58cafd43aefb0fabc (patch)
treeddc7a6a80667b6c2359474aae00ceefaf780f935
parentMerge branch 'master' of https://github.com/python-discord/bot into help-refa... (diff)
Apply suggestions from review.
- Make exception handling for bin reaction more specific - Channel constants were updated recently - Suggest category names - Tidy up signature formatting - Move score cutoff to 80 to allow a few more matches
-rw-r--r--bot/cogs/help.py21
1 files changed, 9 insertions, 12 deletions
diff --git a/bot/cogs/help.py b/bot/cogs/help.py
index 334e7fc53..f020a1725 100644
--- a/bot/cogs/help.py
+++ b/bot/cogs/help.py
@@ -5,7 +5,7 @@ from collections import namedtuple
from contextlib import suppress
from typing import List
-from discord import Colour, Embed, HTTPException, Member, Message, Reaction, User
+from discord import Colour, Embed, NotFound, Member, Message, Reaction, User
from discord.ext.commands import Bot, Cog, Command, Context, Group, HelpCommand
from fuzzywuzzy import fuzz, process
@@ -39,12 +39,11 @@ async def help_cleanup(bot: Bot, author: Member, message: Message) -> None:
try:
await bot.wait_for("reaction_add", check=check, timeout=300)
await message.delete()
- return
- except (HTTPException, TimeoutError):
+ except TimeoutError:
+ await message.remove_reaction(DELETE_EMOJI, bot.user)
+ except NotFound:
pass
- await message.remove_reaction(DELETE_EMOJI, bot.user)
-
class HelpQueryNotFound(ValueError):
"""
@@ -75,7 +74,7 @@ class CustomHelpCommand(HelpCommand):
def __init__(self):
super().__init__(command_attrs={"help": "Shows help for bot commands"})
- @redirect_output(destination_channel=Channels.bot, bypass_roles=STAFF_ROLES)
+ @redirect_output(destination_channel=Channels.bot_commands, bypass_roles=STAFF_ROLES)
async def prepare_help_command(self, ctx: Context, command: str = None) -> None:
"""Adjust context to redirect to a new channel if required."""
self.context = ctx
@@ -143,7 +142,7 @@ class CustomHelpCommand(HelpCommand):
choices.update(self.context.bot.cogs)
# all category names
- choices.update(n.category for n in self.context.bot.cogs if hasattr(n, "category"))
+ choices.update(n.category for n in self.context.bot.cogs.values() if hasattr(n, "category"))
return choices
async def command_not_found(self, string: str) -> "HelpQueryNotFound":
@@ -153,7 +152,7 @@ class CustomHelpCommand(HelpCommand):
Will return an instance of the `HelpQueryNotFound` exception with the error message and possible matches.
"""
choices = await self.get_all_help_choices()
- result = process.extractBests(string, choices, scorer=fuzz.ratio, score_cutoff=90)
+ result = process.extractBests(string, choices, scorer=fuzz.ratio, score_cutoff=80)
return HelpQueryNotFound(f'Query "{string}" not found.', dict(result))
@@ -214,10 +213,8 @@ class CustomHelpCommand(HelpCommand):
"""Formats the prefix, command name and signature, and short doc for an iterable of commands."""
details = ""
for c in commands_:
- if c.signature:
- details += f"\n**`{PREFIX}{c.qualified_name} {c.signature}`**\n*{c.short_doc or 'No details provided'}*"
- else:
- details += f"\n**`{PREFIX}{c.qualified_name}`**\n*{c.short_doc or 'No details provided.'}*"
+ signature = f" {c.signature}" if c.signature else ""
+ details += f"\n**`{PREFIX}{c.qualified_name}{signature}`**\n*{c.short_doc or 'No details provided'}*"
return details