Merge pull request #49 from Hikari-Haru/Fix-view-message-edits

Fix view message edits
Kaveen Kumarasinghe 2 years ago committed by GitHub
commit 44070100fc
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -76,7 +76,7 @@ class DrawDallEService(commands.Cog, name="DrawDallEService"):
) )
await result_message.edit( await result_message.edit(
view=SaveView(image_urls, self, self.converser_cog, result_message) view=SaveView(ctx, image_urls, self, self.converser_cog, result_message)
) )
self.converser_cog.users_to_interactions[user_id] = [] self.converser_cog.users_to_interactions[user_id] = []
@ -95,7 +95,7 @@ class DrawDallEService(commands.Cog, name="DrawDallEService"):
file=file, file=file,
) )
await message.edit( await message.edit(
view=SaveView(image_urls, self, self.converser_cog, message) view=SaveView(ctx, image_urls, self, self.converser_cog, message)
) )
else: # Varying case else: # Varying case
if not draw_from_optimizer: if not draw_from_optimizer:
@ -106,7 +106,7 @@ class DrawDallEService(commands.Cog, name="DrawDallEService"):
) )
await result_message.edit( await result_message.edit(
view=SaveView( view=SaveView(
image_urls, self, self.converser_cog, result_message, True ctx, image_urls, self, self.converser_cog, result_message, True
) )
) )
@ -118,7 +118,7 @@ class DrawDallEService(commands.Cog, name="DrawDallEService"):
) )
await result_message.edit( await result_message.edit(
view=SaveView( view=SaveView(
image_urls, self, self.converser_cog, result_message ctx, image_urls, self, self.converser_cog, result_message
) )
) )
@ -204,11 +204,12 @@ class DrawDallEService(commands.Cog, name="DrawDallEService"):
class SaveView(discord.ui.View): class SaveView(discord.ui.View):
def __init__( def __init__(
self, image_urls, cog, converser_cog, message, no_retry=False, only_save=None self, ctx, image_urls, cog, converser_cog, message, no_retry=False, only_save=None
): ):
super().__init__( super().__init__(
timeout=3600 if not only_save else None timeout=3600 if not only_save else None
) # 10 minute timeout for Retry, Save ) # 1 hour timeout for Retry, Save
self.ctx = ctx
self.image_urls = image_urls self.image_urls = image_urls
self.cog = cog self.cog = cog
self.no_retry = no_retry self.no_retry = no_retry
@ -234,6 +235,7 @@ class SaveView(discord.ui.View):
# Create a new view with the same params as this one, but pass only_save=True # Create a new view with the same params as this one, but pass only_save=True
new_view = SaveView( new_view = SaveView(
self.ctx,
self.image_urls, self.image_urls,
self.cog, self.cog,
self.converser_cog, self.converser_cog,
@ -243,7 +245,7 @@ class SaveView(discord.ui.View):
) )
# Set the view of the message to the new view # Set the view of the message to the new view
await self.message.edit(view=new_view) await self.ctx.edit(view=new_view)
class VaryButton(discord.ui.Button): class VaryButton(discord.ui.Button):

@ -606,12 +606,12 @@ class GPT3ComCon(commands.Cog, name="GPT3ComCon"):
response_message = ( response_message = (
await ctx.respond( await ctx.respond(
response_text, response_text,
view=RedoView(self, user_id), view=RedoView(ctx, self, user_id),
) )
if from_context if from_context
else await ctx.reply( else await ctx.reply(
response_text, response_text,
view=RedoView(self, user_id), view=RedoView(ctx, self, user_id),
) )
) )
@ -868,9 +868,10 @@ class GPT3ComCon(commands.Cog, name="GPT3ComCon"):
class RedoView(discord.ui.View): class RedoView(discord.ui.View):
def __init__(self, converser_cog, user_id): def __init__(self, ctx, converser_cog, user_id):
super().__init__(timeout=3600) # 1 hour interval to redo. super().__init__(timeout=3600) # 1 hour interval to redo.
self.converser_cog = converser_cog self.converser_cog = converser_cog
self.ctx = ctx
self.add_item(RedoButton(self.converser_cog)) self.add_item(RedoButton(self.converser_cog))
if user_id in self.converser_cog.conversating_users: if user_id in self.converser_cog.conversating_users:
@ -880,9 +881,14 @@ class RedoView(discord.ui.View):
# Remove the button from the view/message # Remove the button from the view/message
self.clear_items() self.clear_items()
# Send a message to the user saying the view has timed out # Send a message to the user saying the view has timed out
await self.message.edit( if self.message:
view=None, await self.message.edit(
) view=None,
)
else:
await self.ctx.edit(
view=None,
)
class EndConvoButton(discord.ui.Button["RedoView"]): class EndConvoButton(discord.ui.Button["RedoView"]):

Loading…
Cancel
Save