diff options
Diffstat (limited to 'bot')
| -rw-r--r-- | bot/exts/evergreen/bookmark.py | 4 | ||||
| -rw-r--r-- | bot/utils/converters.py | 15 | 
2 files changed, 18 insertions, 1 deletions
| diff --git a/bot/exts/evergreen/bookmark.py b/bot/exts/evergreen/bookmark.py index 73908702..0adf1e68 100644 --- a/bot/exts/evergreen/bookmark.py +++ b/bot/exts/evergreen/bookmark.py @@ -6,6 +6,8 @@ from discord.ext import commands  from bot.constants import Colours, ERROR_REPLIES, Emojis, Icons +from bot.utils.converters import BetterMessageConverter +  log = logging.getLogger(__name__) @@ -19,7 +21,7 @@ class Bookmark(commands.Cog):      async def bookmark(          self,          ctx: commands.Context, -        target_message: discord.Message, +        target_message: BetterMessageConverter,          *,          title: str = "Bookmark"      ) -> None: diff --git a/bot/utils/converters.py b/bot/utils/converters.py new file mode 100644 index 00000000..74a0b5b7 --- /dev/null +++ b/bot/utils/converters.py @@ -0,0 +1,15 @@ +import discord + +from discord.ext.commands.converter import MessageConverter + + +class BetterMessageConverter(MessageConverter): +    """A converter that handles embed-suppressed links like <http://example.com>""" +    async def convert(self, ctx, argument: str) -> discord.Message: +        # It's possible to wrap a message in [<>] as well, and it's supported because its easy +        if argument.startswith("[") and argument.endswith("]"): +            argument = argument[1:-1] +        if argument.startswith("<") and argument.endswith(">"): +            argument = argument[1:-1] + +        return await super().convert(ctx, argument) | 
