ajout reminder dans les DM

This commit is contained in:
Mylloon 2021-06-15 20:37:58 +02:00
parent 8c0b1f8ec2
commit 9b77418728
2 changed files with 15 additions and 10 deletions

View file

@ -492,17 +492,19 @@ class Utils(commands.Cog):
embed = discord.Embed(color = 0xC41B1B)
extrarg = 0
guildID = ctx.guild.id # can be set to 0 if its a DM message, so it can be see from anywhere
if not reminder:
reminder = "Notification"
if time == "help":
seconds = 0
else:
if time.lower().endswith("@"):
if time.endswith("@"):
time = time[:-1]
extrarg = 1
if time.lower().endswith("P"):
if time.lower().endswith("p") or time.lower().endswith("d"):
time = time[:-1]
extrarg = 2
guildID = 0
seconds = stringTempsVersSecondes(time)
if type(seconds) != int:
if fromSlash != True:
@ -512,14 +514,14 @@ class Utils(commands.Cog):
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."
\nMet un `P` ou `D` accolée au temps pour que le bot te DM au lieu de t'envoyer un message dans ce salon."
)
else:
now = int(nowUTC())
messageID = None
if fromSlash != True:
messageID = ctx.message.id
Reminder().ajoutReminder(messageID, ctx.channel.id, extrarg, reminder, now, now + seconds, ctx.author.id, ctx.guild.id)
Reminder().ajoutReminder(messageID, ctx.channel.id, extrarg, reminder, now, now + seconds, ctx.author.id, guildID)
return await ctx.send(f"Ok, je t'en parles dans {timedeltaToString(seconds)} avec 1m de retard maximum.")
await ctx.send(embed = embed)
@_reminder.error
@ -541,7 +543,14 @@ class Utils(commands.Cog):
userID = expired[4] # personne qui a fait le rappel
channel = self.client.get_channel(expired[0]) # salon du message
finalEmbed = discord.Embed(description = cleanCodeStringWithMentionAndURLs(reminder), timestamp = intToDatetime(expired[3]), color = discord.Colour.random())
if channel == None: # si le salon n'existe plus
if expired[1] == 2: # s'il faut envoyer en DM le message
user = self.client.get_user(userID)
if user == None: # si l'utilisateur n'est pas trouvé
return Reminder().suppressionReminder(expired[5]) # suppression du rappel
channel = await user.create_dm() # envoie en DM
userID = None # plus de mention
sourceMessage = None # plus de message source
elif channel == None: # si le salon n'existe plus
user = self.client.get_user(userID)
if user == None: # si l'utilisateur n'est pas trouvé
return Reminder().suppressionReminder(expired[5]) # suppression du rappel
@ -572,10 +581,6 @@ class Utils(commands.Cog):
mentionList = getMentionInString(reminder)
for i in mentionList:
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:
await channel.send(message, embed = finalEmbed) # envoie du rappel
except: # les DM sont fermés

View file

@ -44,7 +44,7 @@ class Reminder(Database):
"""Retourne la liste des reminders d'un utilisateur."""
requete = """
SELECT reminder_str, creation_int, expiration_int, id FROM reminder
WHERE user_id = ? AND guild_id = ?
WHERE user_id = ? AND (guild_id = ? OR guild_id = 0)
"""
return self.affichageResultat(self.requete(requete, [userID, guildID]))