Fix bug in remindme if used in DMs
This commit is contained in:
parent
8471580517
commit
622b003246
1 changed files with 17 additions and 33 deletions
|
@ -55,6 +55,8 @@ class RemindmeCog(Extension):
|
||||||
) -> None:
|
) -> None:
|
||||||
if private is None and ctx.guild:
|
if private is None and ctx.guild:
|
||||||
private = ctx.guild.member_count >= 5000
|
private = ctx.guild.member_count >= 5000
|
||||||
|
elif private is None and not ctx.guild:
|
||||||
|
private = False
|
||||||
modal = Modal(
|
modal = Modal(
|
||||||
title="Set your reminder!",
|
title="Set your reminder!",
|
||||||
components=[
|
components=[
|
||||||
|
@ -94,9 +96,7 @@ class RemindmeCog(Extension):
|
||||||
await response.send("Hey, you should probably make this readable", ephemeral=True)
|
await response.send("Hey, you should probably make this readable", ephemeral=True)
|
||||||
return
|
return
|
||||||
elif len(message) == 0:
|
elif len(message) == 0:
|
||||||
await response.send(
|
await response.send("Hey, you should probably add content to your reminder", ephemeral=True)
|
||||||
"Hey, you should probably add content to your reminder", ephemeral=True
|
|
||||||
)
|
|
||||||
return
|
return
|
||||||
|
|
||||||
base_settings = {
|
base_settings = {
|
||||||
|
@ -105,9 +105,7 @@ class RemindmeCog(Extension):
|
||||||
"RETURN_AS_TIMEZONE_AWARE": True,
|
"RETURN_AS_TIMEZONE_AWARE": True,
|
||||||
}
|
}
|
||||||
rt_settings = base_settings.copy()
|
rt_settings = base_settings.copy()
|
||||||
rt_settings["PARSERS"] = [
|
rt_settings["PARSERS"] = [x for x in default_parsers if x not in ["absolute-time", "timestamp"]]
|
||||||
x for x in default_parsers if x not in ["absolute-time", "timestamp"]
|
|
||||||
]
|
|
||||||
|
|
||||||
rt_remind_at = parse(delay, settings=rt_settings)
|
rt_remind_at = parse(delay, settings=rt_settings)
|
||||||
|
|
||||||
|
@ -121,15 +119,11 @@ class RemindmeCog(Extension):
|
||||||
remind_at = at_remind_at
|
remind_at = at_remind_at
|
||||||
else:
|
else:
|
||||||
self.logger.debug(f"Failed to parse delay: {delay}")
|
self.logger.debug(f"Failed to parse delay: {delay}")
|
||||||
await response.send(
|
await response.send(f"`{delay}` is not a parsable date, please try again", ephemeral=True)
|
||||||
f"`{delay}` is not a parsable date, please try again", ephemeral=True
|
|
||||||
)
|
|
||||||
return
|
return
|
||||||
|
|
||||||
if remind_at < datetime.now(tz=timezone.utc):
|
if remind_at < datetime.now(tz=timezone.utc):
|
||||||
await response.send(
|
await response.send(f"`{delay}` is in the past. Past reminders aren't allowed", ephemeral=True)
|
||||||
f"`{delay}` is in the past. Past reminders aren't allowed", ephemeral=True
|
|
||||||
)
|
|
||||||
return
|
return
|
||||||
|
|
||||||
elif remind_at < datetime.now(tz=timezone.utc):
|
elif remind_at < datetime.now(tz=timezone.utc):
|
||||||
|
@ -165,18 +159,16 @@ class RemindmeCog(Extension):
|
||||||
icon_url=ctx.author.display_avatar.url,
|
icon_url=ctx.author.display_avatar.url,
|
||||||
)
|
)
|
||||||
embed.set_thumbnail(url=ctx.author.display_avatar.url)
|
embed.set_thumbnail(url=ctx.author.display_avatar.url)
|
||||||
|
delete_button = Button(style=ButtonStyles.DANGER, emoji="🗑️", custom_id=f"delete|{ctx.author.id}")
|
||||||
delete_button = Button(
|
components = [delete_button]
|
||||||
style=ButtonStyles.DANGER, emoji="🗑️", custom_id=f"delete|{ctx.author.id}"
|
if not r.guild == ctx.author.id:
|
||||||
)
|
|
||||||
copy_button = Button(style=ButtonStyles.GREEN, emoji="📋", custom_id=f"copy|rme|{r.id}")
|
copy_button = Button(style=ButtonStyles.GREEN, emoji="📋", custom_id=f"copy|rme|{r.id}")
|
||||||
components = [ActionRow(delete_button, copy_button)]
|
components.append(copy_button)
|
||||||
private = private if private is not None else False
|
private = private if private is not None else False
|
||||||
|
components = [ActionRow(*components)]
|
||||||
await response.send(embeds=embed, components=components, ephemeral=private)
|
await response.send(embeds=embed, components=components, ephemeral=private)
|
||||||
|
|
||||||
async def get_reminders_embed(
|
async def get_reminders_embed(self, ctx: InteractionContext, reminders: List[Reminder]) -> Embed:
|
||||||
self, ctx: InteractionContext, reminders: List[Reminder]
|
|
||||||
) -> Embed:
|
|
||||||
"""Build embed for paginator."""
|
"""Build embed for paginator."""
|
||||||
fields = []
|
fields = []
|
||||||
for reminder in reminders:
|
for reminder in reminders:
|
||||||
|
@ -219,9 +211,7 @@ class RemindmeCog(Extension):
|
||||||
return
|
return
|
||||||
|
|
||||||
embed = await self.get_reminders_embed(ctx, reminders)
|
embed = await self.get_reminders_embed(ctx, reminders)
|
||||||
components = Button(
|
components = Button(style=ButtonStyles.DANGER, emoji="🗑️", custom_id=f"delete|{ctx.author.id}")
|
||||||
style=ButtonStyles.DANGER, emoji="🗑️", custom_id=f"delete|{ctx.author.id}"
|
|
||||||
)
|
|
||||||
await ctx.send(embeds=embed, components=components)
|
await ctx.send(embeds=embed, components=components)
|
||||||
|
|
||||||
@reminders.subcommand(sub_cmd_name="delete", sub_cmd_description="Delete a reminder")
|
@reminders.subcommand(sub_cmd_name="delete", sub_cmd_description="Delete a reminder")
|
||||||
|
@ -254,9 +244,7 @@ class RemindmeCog(Extension):
|
||||||
)
|
)
|
||||||
embed.set_thumbnail(url=ctx.author.display_avatar.url)
|
embed.set_thumbnail(url=ctx.author.display_avatar.url)
|
||||||
|
|
||||||
components = Button(
|
components = Button(style=ButtonStyles.DANGER, emoji="🗑️", custom_id=f"delete|{ctx.author.id}")
|
||||||
style=ButtonStyles.DANGER, emoji="🗑️", custom_id=f"delete|{ctx.author.id}"
|
|
||||||
)
|
|
||||||
try:
|
try:
|
||||||
await reminder.delete()
|
await reminder.delete()
|
||||||
except Exception:
|
except Exception:
|
||||||
|
@ -288,18 +276,14 @@ class RemindmeCog(Extension):
|
||||||
EmbedField(name="Created At", value=f"<t:{cts}:F> (<t:{cts}:R>)"),
|
EmbedField(name="Created At", value=f"<t:{cts}:F> (<t:{cts}:R>)"),
|
||||||
]
|
]
|
||||||
|
|
||||||
embed = build_embed(
|
embed = build_embed(title="You have a reminder!", description=reminder.message, fields=fields)
|
||||||
title="You have a reminder!", description=reminder.message, fields=fields
|
|
||||||
)
|
|
||||||
embed.set_author(
|
embed.set_author(
|
||||||
name=ctx.author.display_name + "#" + ctx.author.discriminator,
|
name=ctx.author.display_name + "#" + ctx.author.discriminator,
|
||||||
icon_url=ctx.author.display_avatar.url,
|
icon_url=ctx.author.display_avatar.url,
|
||||||
)
|
)
|
||||||
|
|
||||||
embed.set_thumbnail(url=ctx.author.display_avatar.url)
|
embed.set_thumbnail(url=ctx.author.display_avatar.url)
|
||||||
components = Button(
|
components = Button(style=ButtonStyles.DANGER, emoji="🗑️", custom_id=f"delete|{ctx.author.id}")
|
||||||
style=ButtonStyles.DANGER, emoji="🗑️", custom_id=f"delete|{ctx.author.id}"
|
|
||||||
)
|
|
||||||
await ctx.send(embeds=embed, ephemeral=reminder.private, components=components)
|
await ctx.send(embeds=embed, ephemeral=reminder.private, components=components)
|
||||||
if reminder.remind_at <= datetime.now(tz=timezone.utc) and not reminder.active:
|
if reminder.remind_at <= datetime.now(tz=timezone.utc) and not reminder.active:
|
||||||
try:
|
try:
|
||||||
|
|
Loading…
Add table
Reference in a new issue