ajout commentaires + fix bug quand message supprimé + preparation ajout nouvelle feature
This commit is contained in:
parent
d473651a6c
commit
c92bfb93d6
1 changed files with 29 additions and 18 deletions
|
@ -500,13 +500,16 @@ class Utils(commands.Cog):
|
||||||
if time.lower().endswith("@"):
|
if time.lower().endswith("@"):
|
||||||
time = time[:-1]
|
time = time[:-1]
|
||||||
extrarg = 1
|
extrarg = 1
|
||||||
|
if time.lower().endswith("P"):
|
||||||
|
time = time[:-1]
|
||||||
|
extrarg = 2
|
||||||
seconds = stringTempsVersSecondes(time)
|
seconds = stringTempsVersSecondes(time)
|
||||||
if type(seconds) != int:
|
if type(seconds) != int:
|
||||||
if fromSlash != True:
|
if fromSlash != True:
|
||||||
await ctx.message.add_reaction(emoji = '❓')
|
await ctx.message.add_reaction(emoji = '❓')
|
||||||
return await ctx.send(seconds)
|
return await ctx.send(seconds)
|
||||||
if seconds == 0:
|
if seconds == 0:
|
||||||
embed.add_field(name="Attention", value="Format pour le temps : `d` pour jour, `h` pour heure, `m` pour minute, `s` pour seconde\nMet un `@` accolée à l'unité pour mentionner les gens mentionner dans ton message.")
|
embed.add_field(name="Attention", value="Format pour le temps : `d` ou `j` pour jour, `h` pour heure, `m` pour minute, `s` pour seconde (légères variances acceptés aussi).\nMet un `@` accolée aux temps pour mentionner les gens mentionner dans ton message.\nMet un `P` accolée au temps pour que le bot te DM au lieu de t'envoyer un message dans ce salon.")
|
||||||
elif seconds > 7776000: # 90 * 60 * 60 * 24
|
elif seconds > 7776000: # 90 * 60 * 60 * 24
|
||||||
embed.add_field(name="Attention", value="Tu as spécifié une durée trop longue, la durée maximum étant de 90 jours.")
|
embed.add_field(name="Attention", value="Tu as spécifié une durée trop longue, la durée maximum étant de 90 jours.")
|
||||||
else:
|
else:
|
||||||
|
@ -530,43 +533,51 @@ class Utils(commands.Cog):
|
||||||
|
|
||||||
@tasks.loop(minutes = 1)
|
@tasks.loop(minutes = 1)
|
||||||
async def _reminderLoop(self):
|
async def _reminderLoop(self):
|
||||||
expiration = Reminder().recuperationExpiration(int(nowUTC()))
|
expiration = Reminder().recuperationExpiration(int(nowUTC())) # on récupères les éléments expirés
|
||||||
for expired in expiration:
|
for expired in expiration: # on regarde tout les éléments expirés
|
||||||
reminder = expired[2]
|
reminder = expired[2] # message
|
||||||
userID = expired[4]
|
userID = expired[4] # personne qui a fait le rappel
|
||||||
channel = self.client.get_channel(expired[0])
|
channel = self.client.get_channel(expired[0]) # salon du message
|
||||||
finalEmbed = discord.Embed(description = cleanCodeStringWithMentionAndURLs(reminder), timestamp = intToDatetime(expired[3]), color = discord.Colour.random())
|
finalEmbed = discord.Embed(description = cleanCodeStringWithMentionAndURLs(reminder), timestamp = intToDatetime(expired[3]), color = discord.Colour.random())
|
||||||
if channel == None:
|
if channel == None: # si le salon n'existe plus
|
||||||
user = self.client.get_user(userID)
|
user = self.client.get_user(userID)
|
||||||
if user == None: # si l'utilisateur n'est pas trouvé
|
if user == None: # si l'utilisateur n'est pas trouvé
|
||||||
return Reminder().suppressionReminder(expired[5])
|
return Reminder().suppressionReminder(expired[5]) # suppression du rappel
|
||||||
channel = await user.create_dm()
|
channel = await user.create_dm() # envoie en DM
|
||||||
userID = None
|
userID = None
|
||||||
finalEmbed.add_field(name = "Info", value = "Message envoyé en DM car le salon n'est plus disponible.")
|
finalEmbed.add_field(name = "Info", value = "Message envoyé en DM car le salon n'est plus disponible.")
|
||||||
else:
|
else:
|
||||||
sourceMessage = expired[6]
|
sourceMessage = expired[6]
|
||||||
|
if sourceMessage != None: # vérification message avec slash command
|
||||||
|
try:
|
||||||
|
sourceMessage = await channel.fetch_message(sourceMessage) # récupération message
|
||||||
|
except:
|
||||||
|
sourceMessage = None # message a été supprimé
|
||||||
if sourceMessage != None:
|
if sourceMessage != None:
|
||||||
sourceMessage = await channel.fetch_message(sourceMessage)
|
await sourceMessage.add_reaction(emoji = '✅') # ajout réaction
|
||||||
await sourceMessage.add_reaction(emoji = '✅')
|
|
||||||
finalEmbed.set_footer(text=f"Message d'il y a {timedeltaToString(int(nowUTC()) - expired[3])}")
|
finalEmbed.set_footer(text=f"Message d'il y a {timedeltaToString(int(nowUTC()) - expired[3])}")
|
||||||
links = ""
|
links = ""
|
||||||
findedURLs = getURLsInString(reminder)
|
findedURLs = getURLsInString(reminder)
|
||||||
for i in range(0, len(findedURLs)):
|
for i in range(0, len(findedURLs)): # ajout de field "lien" pour pouvoir cliquer sur les liens facilement
|
||||||
links += f"[Lien {i + 1}]({findedURLs[i]}) · "
|
links += f"[Lien {i + 1}]({findedURLs[i]}) · "
|
||||||
if len(findedURLs) > 0:
|
if len(findedURLs) > 0:
|
||||||
finalEmbed.add_field(name = f"Lien{'s' if len(findedURLs) > 1 else ''}", value = links[:-3])
|
finalEmbed.add_field(name = f"Lien{'s' if len(findedURLs) > 1 else ''}", value = links[:-3])
|
||||||
message = ""
|
message = ""
|
||||||
if userID != None:
|
if userID != None: # metion de l'utilisateur si le message n'est pas en DM
|
||||||
message = f"<@{userID}>"
|
message = f"<@{userID}>"
|
||||||
if expired[1] == 1:
|
if expired[1] == 1: # s'il faut mentionner les personnes dans le message
|
||||||
mentionList = getMentionInString(reminder)
|
mentionList = getMentionInString(reminder)
|
||||||
for i in mentionList:
|
for i in mentionList:
|
||||||
message += f" {i}"
|
message += f" {i}"
|
||||||
|
elif expired[1] == 2: # s'il faut envoyer en DM le message
|
||||||
|
mentionList = getMentionInString(reminder)
|
||||||
|
for i in mentionList:
|
||||||
|
message += f" {i}x"
|
||||||
try:
|
try:
|
||||||
await channel.send(message, embed = finalEmbed)
|
await channel.send(message, embed = finalEmbed) # envoie du rappel
|
||||||
except: # les DM sont fermés
|
except: # les DM sont fermés
|
||||||
return Reminder().suppressionReminder(expired[5])
|
pass
|
||||||
Reminder().suppressionReminder(expired[5])
|
return Reminder().suppressionReminder(expired[5]) # suppression du rappel
|
||||||
@_reminderLoop.before_loop
|
@_reminderLoop.before_loop
|
||||||
async def __avant_reminderLoop(self):
|
async def __avant_reminderLoop(self):
|
||||||
await self.client.wait_until_ready()
|
await self.client.wait_until_ready()
|
||||||
|
|
Reference in a new issue