ajout reminder dans les DM
This commit is contained in:
parent
8c0b1f8ec2
commit
9b77418728
2 changed files with 15 additions and 10 deletions
|
@ -492,17 +492,19 @@ class Utils(commands.Cog):
|
||||||
|
|
||||||
embed = discord.Embed(color = 0xC41B1B)
|
embed = discord.Embed(color = 0xC41B1B)
|
||||||
extrarg = 0
|
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:
|
if not reminder:
|
||||||
reminder = "Notification"
|
reminder = "Notification"
|
||||||
if time == "help":
|
if time == "help":
|
||||||
seconds = 0
|
seconds = 0
|
||||||
else:
|
else:
|
||||||
if time.lower().endswith("@"):
|
if time.endswith("@"):
|
||||||
time = time[:-1]
|
time = time[:-1]
|
||||||
extrarg = 1
|
extrarg = 1
|
||||||
if time.lower().endswith("P"):
|
if time.lower().endswith("p") or time.lower().endswith("d"):
|
||||||
time = time[:-1]
|
time = time[:-1]
|
||||||
extrarg = 2
|
extrarg = 2
|
||||||
|
guildID = 0
|
||||||
seconds = stringTempsVersSecondes(time)
|
seconds = stringTempsVersSecondes(time)
|
||||||
if type(seconds) != int:
|
if type(seconds) != int:
|
||||||
if fromSlash != True:
|
if fromSlash != True:
|
||||||
|
@ -512,14 +514,14 @@ class Utils(commands.Cog):
|
||||||
embed.add_field(name="Attention", value=
|
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). \
|
"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 `@` 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:
|
else:
|
||||||
now = int(nowUTC())
|
now = int(nowUTC())
|
||||||
messageID = None
|
messageID = None
|
||||||
if fromSlash != True:
|
if fromSlash != True:
|
||||||
messageID = ctx.message.id
|
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.")
|
return await ctx.send(f"Ok, je t'en parles dans {timedeltaToString(seconds)} avec 1m de retard maximum.")
|
||||||
await ctx.send(embed = embed)
|
await ctx.send(embed = embed)
|
||||||
@_reminder.error
|
@_reminder.error
|
||||||
|
@ -541,7 +543,14 @@ class Utils(commands.Cog):
|
||||||
userID = expired[4] # personne qui a fait le rappel
|
userID = expired[4] # personne qui a fait le rappel
|
||||||
channel = self.client.get_channel(expired[0]) # salon du message
|
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: # 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)
|
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]) # suppression du rappel
|
return Reminder().suppressionReminder(expired[5]) # suppression du rappel
|
||||||
|
@ -572,10 +581,6 @@ class Utils(commands.Cog):
|
||||||
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) # envoie du rappel
|
await channel.send(message, embed = finalEmbed) # envoie du rappel
|
||||||
except: # les DM sont fermés
|
except: # les DM sont fermés
|
||||||
|
|
|
@ -44,7 +44,7 @@ class Reminder(Database):
|
||||||
"""Retourne la liste des reminders d'un utilisateur."""
|
"""Retourne la liste des reminders d'un utilisateur."""
|
||||||
requete = """
|
requete = """
|
||||||
SELECT reminder_str, creation_int, expiration_int, id FROM reminder
|
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]))
|
return self.affichageResultat(self.requete(requete, [userID, guildID]))
|
||||||
|
|
||||||
|
|
Reference in a new issue