From ce8a9d85cd5a27c38c61f17f5656106ddd9c7a0f Mon Sep 17 00:00:00 2001 From: vcokltfre Date: Sat, 15 May 2021 23:21:09 +0100 Subject: feat: allow replying to messages to bookmark --- bot/exts/evergreen/bookmark.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'bot') diff --git a/bot/exts/evergreen/bookmark.py b/bot/exts/evergreen/bookmark.py index 29915627..1d172a45 100644 --- a/bot/exts/evergreen/bookmark.py +++ b/bot/exts/evergreen/bookmark.py @@ -1,6 +1,7 @@ import asyncio import logging import random +import typing as t import discord from discord.ext import commands @@ -88,11 +89,16 @@ class Bookmark(commands.Cog): async def bookmark( self, ctx: commands.Context, - target_message: WrappedMessageConverter, + target_message: t.Optional[WrappedMessageConverter], *, title: str = "Bookmark" ) -> None: """Send the author a link to `target_message` via DMs.""" + if not target_message: + if not ctx.message.reference: + raise commands.UserInputError("You must either provide a message to bookmark, or reply to one.") + target_message = await ctx.channel.fetch_message(ctx.message.reference.message_id) + # Prevent users from bookmarking a message in a channel they don't have access to permissions = ctx.author.permissions_in(target_message.channel) if not permissions.read_messages: -- cgit v1.2.3 From 8c8df556a982d06218465f98ec9ea9ccca01d6b0 Mon Sep 17 00:00:00 2001 From: vcokltfre Date: Sat, 15 May 2021 23:32:22 +0100 Subject: chore: add 'valid' wording --- bot/exts/evergreen/bookmark.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'bot') diff --git a/bot/exts/evergreen/bookmark.py b/bot/exts/evergreen/bookmark.py index 1d172a45..1f65f07c 100644 --- a/bot/exts/evergreen/bookmark.py +++ b/bot/exts/evergreen/bookmark.py @@ -96,7 +96,7 @@ class Bookmark(commands.Cog): """Send the author a link to `target_message` via DMs.""" if not target_message: if not ctx.message.reference: - raise commands.UserInputError("You must either provide a message to bookmark, or reply to one.") + raise commands.UserInputError("You must either provide a valid message to bookmark, or reply to one.") target_message = await ctx.channel.fetch_message(ctx.message.reference.message_id) # Prevent users from bookmarking a message in a channel they don't have access to -- cgit v1.2.3 From 6885c85f7c02fec618265881f00f92738b64eabc Mon Sep 17 00:00:00 2001 From: vcokltfre Date: Sun, 16 May 2021 03:19:26 +0100 Subject: chore: use ctx.fetch_message Co-authored-by: ToxicKidz <78174417+ToxicKidz@users.noreply.github.com> --- bot/exts/evergreen/bookmark.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'bot') diff --git a/bot/exts/evergreen/bookmark.py b/bot/exts/evergreen/bookmark.py index 1f65f07c..c84446c5 100644 --- a/bot/exts/evergreen/bookmark.py +++ b/bot/exts/evergreen/bookmark.py @@ -97,7 +97,7 @@ class Bookmark(commands.Cog): if not target_message: if not ctx.message.reference: raise commands.UserInputError("You must either provide a valid message to bookmark, or reply to one.") - target_message = await ctx.channel.fetch_message(ctx.message.reference.message_id) + target_message = await ctx.fetch_message(ctx.message.reference.message_id) # Prevent users from bookmarking a message in a channel they don't have access to permissions = ctx.author.permissions_in(target_message.channel) -- cgit v1.2.3 From 90dcb6c2bc5005ebc1d890b6a194a9b53521de0a Mon Sep 17 00:00:00 2001 From: vcokltfre Date: Sun, 16 May 2021 19:02:03 +0100 Subject: fix: use resolved reference --- bot/exts/evergreen/bookmark.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'bot') diff --git a/bot/exts/evergreen/bookmark.py b/bot/exts/evergreen/bookmark.py index c84446c5..85c9b46f 100644 --- a/bot/exts/evergreen/bookmark.py +++ b/bot/exts/evergreen/bookmark.py @@ -97,7 +97,7 @@ class Bookmark(commands.Cog): if not target_message: if not ctx.message.reference: raise commands.UserInputError("You must either provide a valid message to bookmark, or reply to one.") - target_message = await ctx.fetch_message(ctx.message.reference.message_id) + target_message = ctx.message.reference.resolved # Prevent users from bookmarking a message in a channel they don't have access to permissions = ctx.author.permissions_in(target_message.channel) -- cgit v1.2.3