Adding page to reminderlist

This commit is contained in:
Mylloon 2021-07-28 21:47:59 +02:00
parent 14002799a3
commit 6dab13b309

View file

@ -562,43 +562,52 @@ class Utils(commands.Cog):
await self.client.wait_until_ready() await self.client.wait_until_ready()
@commands.command(name='reminderlist', aliases=["remindlist", "rl", "rappeliste"]) @commands.command(name='reminderlist', aliases=["remindlist", "rl", "rappeliste"])
async def _reminderlist(self, ctx, *utilisateur): async def _reminderlist(self, ctx, *arg):
"""Affiche la liste des rappels d'un utilisateur.\n ➡ Syntaxe: {PREFIX}reminderlist/rl/remindlist/rappeliste [utilisateur]""" """Affiche la liste des rappels d'un utilisateur.\n ➡ Syntaxe: {PREFIX}reminderlist/rl/remindlist/rappeliste [utilisateur]"""
_, fromSlash, utilisateur = isSlash(utilisateur) _, fromSlash, arg = isSlash(arg)
if len(utilisateur) > 0: utilisateur = ctx.author.id
page = 1
if len(arg) > 0:
try: try:
utilisateur = mentionToUser(getMentionInString(utilisateur[0])[0]) utilisateur = mentionToUser(getMentionInString(arg[0])[0])
except: except:
return await mySendHidden(ctx, fromSlash, "L'utilisateur renseigné n'a pas été trouvé.") try:
else: page = int(arg[0])
utilisateur = ctx.author.id except:
return await mySendHidden(ctx, fromSlash, "Veuillez renseigné un utilisateur ou un numéro de page valide.")
reminders = Reminder().listeReminder(utilisateur, ctx.guild.id) reminders = Reminder().listeReminder(utilisateur, ctx.guild.id)
if fromSlash != True: if fromSlash != True:
await ctx.message.add_reaction(emoji = '') await ctx.message.add_reaction(emoji = '')
embed = discord.Embed(description = f"**Rappel{'s' if len(reminders) > 1 else ''} de <@{utilisateur}>**", color = discord.Colour.random())
pageMAX = -(-len(reminders) // 5)
embed = discord.Embed(description = f"**Rappel{'s' if len(reminders) > 1 else ''} de <@{utilisateur}>** • Page {page}/{pageMAX}", color = discord.Colour.random())
embed.set_thumbnail(url = self.client.get_user(utilisateur).avatar_url_as(size = 64)) embed.set_thumbnail(url = self.client.get_user(utilisateur).avatar_url_as(size = 64))
if len(reminders) > 0: limit = 5 * page
for reminder in reminders: if len(reminders) > 0 and page <= pageMAX:
texte = reminder[0] curseur = limit - 4
if len(texte) > 1024: for reminder in reminders[limit - 5:]:
texte = f"{texte[:1021]}..." if curseur <= limit:
expiration = reminder[2] - int(nowUTC()) texte = reminder[0]
if expiration > 0: if len(texte) > 1024:
expiration = f"Expire dans {timedeltaToString(expiration)}" texte = f"{texte[:1021]}..."
else: expiration = reminder[2] - int(nowUTC())
expiration = f"A déjà expiré." if expiration > 0:
embed.add_field(value = texte, name = f"#{reminder[3]} • Fais le {timestampScreen(intToDatetime(reminder[1]))}\n{expiration}", inline = False) expiration = f"Expire dans {timedeltaToString(expiration)}"
else:
expiration = f"A déjà expiré."
embed.add_field(value = texte, name = f"#{reminder[3]} • Fais le {timestampScreen(intToDatetime(reminder[1]))}\n{expiration}", inline = False)
curseur += 1
else: else:
embed.add_field(name = "\u200b", value = "Vous n'avez aucun rappel en attente !") embed.add_field(name = "\u200b", value = f"L'utilisateur n'a aucun rappel en attente ou page n°{page} vide !")
embed.set_footer(text = "Les rappels qui ont déjà expirés vont apparaître dans quelques instants.\nIls peuvent avoir jusqu'à 1 minute de retard maximum.") embed.set_footer(text = "Les rappels qui ont déjà expirés vont apparaître dans quelques instants.\nIls peuvent avoir jusqu'à 1 minute de retard maximum.")
await ctx.send(embed = embed) await ctx.send(embed = embed)
@cog_ext.cog_slash(name="reminderlist", description = "Affiche la liste des rappels d'un utilisateur.") @cog_ext.cog_slash(name="reminderlist", description = "Affiche la liste des rappels d'un utilisateur.")
async def __reminderlist(self, ctx, user = None): async def __reminderlist(self, ctx, userorpage = None):
if user == None: if userorpage == None:
return await self._reminderlist(ctx, True) return await self._reminderlist(ctx, True)
else: else:
return await self._reminderlist(ctx, user, True) return await self._reminderlist(ctx, userorpage, True)
@commands.command(name='reminderdelete', aliases=["reminddelete", "rd"]) @commands.command(name='reminderdelete', aliases=["reminddelete", "rd"])
async def _reminderdelete(self, ctx, *id): async def _reminderdelete(self, ctx, *id):