ajout mention facultative dans reminder
This commit is contained in:
parent
af88144ad0
commit
8a4cefb6ef
1 changed files with 22 additions and 8 deletions
|
@ -270,6 +270,7 @@ class Utils(commands.Cog):
|
||||||
minutes = (hours - int(hours)) * 60
|
minutes = (hours - int(hours)) * 60
|
||||||
seconds = (minutes - int(minutes)) * 60
|
seconds = (minutes - int(minutes)) * 60
|
||||||
return (int(years), int(months), int(days), int(hours), int(minutes), int(seconds))
|
return (int(years), int(months), int(days), int(hours), int(minutes), int(seconds))
|
||||||
|
|
||||||
def _ageLayout(self, tuple):
|
def _ageLayout(self, tuple):
|
||||||
time = {}
|
time = {}
|
||||||
time[0], time[1], time[2], time[3], time[4], time[5] = "an", "mois", "jour", "heure", "minute", "seconde"
|
time[0], time[1], time[2], time[3], time[4], time[5] = "an", "mois", "jour", "heure", "minute", "seconde"
|
||||||
|
@ -292,7 +293,7 @@ class Utils(commands.Cog):
|
||||||
for i in affichage:
|
for i in affichage:
|
||||||
message = message + f", {tuple[i]} {time[i]}"
|
message = message + f", {tuple[i]} {time[i]}"
|
||||||
return message[2:]
|
return message[2:]
|
||||||
|
|
||||||
def _userOrNick(self, user):
|
def _userOrNick(self, user):
|
||||||
if user == None:
|
if user == None:
|
||||||
return "Utilisateur inconnu" # Mauvais copié/collé -> changement d'ID
|
return "Utilisateur inconnu" # Mauvais copié/collé -> changement d'ID
|
||||||
|
@ -312,10 +313,7 @@ class Utils(commands.Cog):
|
||||||
|
|
||||||
def _cleanCodeStringWithMention(self, string):
|
def _cleanCodeStringWithMention(self, string):
|
||||||
string = f"`{string}`"
|
string = f"`{string}`"
|
||||||
findedMention = []
|
findedMention = self._getMentionInString(string)
|
||||||
for findingMention in re.findall(r'<@[!]?\d*>', string): # récupération mention dans la string
|
|
||||||
findedMention.append(findingMention)
|
|
||||||
findedMention = list(dict.fromkeys(findedMention)) # suppression doublon de mention
|
|
||||||
for i in range(0, len(findedMention)):
|
for i in range(0, len(findedMention)):
|
||||||
string = string.replace(findedMention[i], f"`{findedMention[i]}`") # conserve la mention dans le message
|
string = string.replace(findedMention[i], f"`{findedMention[i]}`") # conserve la mention dans le message
|
||||||
if string.startswith("``<@"): # conserve le format quand mention au début de la string
|
if string.startswith("``<@"): # conserve le format quand mention au début de la string
|
||||||
|
@ -324,6 +322,13 @@ class Utils(commands.Cog):
|
||||||
string = string[:-2]
|
string = string[:-2]
|
||||||
return string
|
return string
|
||||||
|
|
||||||
|
def _getMentionInString(self, string):
|
||||||
|
findedMention = []
|
||||||
|
for findingMention in re.findall(r'<@[!]?\d*>', string): # récupération mention dans la string
|
||||||
|
findedMention.append(findingMention)
|
||||||
|
findedMention = list(dict.fromkeys(findedMention)) # suppression doublon de mention
|
||||||
|
return findedMention
|
||||||
|
|
||||||
@commands.command(name='sondage')
|
@commands.command(name='sondage')
|
||||||
async def _sondage(self, ctx, *args):
|
async def _sondage(self, ctx, *args):
|
||||||
"""Fais un sondage.\n ➡ Syntaxe: .sondage "<Question>" "<Proposition1>" "<Proposition...>" "<Proposition20>" """
|
"""Fais un sondage.\n ➡ Syntaxe: .sondage "<Question>" "<Proposition1>" "<Proposition...>" "<Proposition20>" """
|
||||||
|
@ -388,11 +393,15 @@ class Utils(commands.Cog):
|
||||||
|
|
||||||
@commands.command(name='reminder', aliases=["remind", "remindme"])
|
@commands.command(name='reminder', aliases=["remind", "remindme"])
|
||||||
async def _reminder(self, ctx, time, *, reminder):
|
async def _reminder(self, ctx, time, *, reminder):
|
||||||
"""Met en place un rappel.\n ➡ Syntaxe: .reminder/remind/remindme <temps (d/h/m/s)> <message> """
|
"""Met en place un rappel.\n ➡ Syntaxe: .reminder/remind/remindme <temps (d/h/m/s)>[@] <message> """
|
||||||
embed = discord.Embed(color = 0xC41B1B)
|
embed = discord.Embed(color = 0xC41B1B)
|
||||||
seconds = 0
|
seconds = 0
|
||||||
timestamp = datetime.utcnow()
|
timestamp = datetime.utcnow()
|
||||||
|
mention = False
|
||||||
if reminder:
|
if reminder:
|
||||||
|
if time.lower().endswith("@"):
|
||||||
|
time = time[:-1]
|
||||||
|
mention = True
|
||||||
try:
|
try:
|
||||||
if time.lower().endswith("d"):
|
if time.lower().endswith("d"):
|
||||||
seconds += int(time[:-1]) * 60 * 60 * 24
|
seconds += int(time[:-1]) * 60 * 60 * 24
|
||||||
|
@ -412,7 +421,7 @@ class Utils(commands.Cog):
|
||||||
except:
|
except:
|
||||||
pass
|
pass
|
||||||
if seconds == 0:
|
if seconds == 0:
|
||||||
embed.add_field(name="Attention", value="Mauvais format pour le temps, `d` pour jour, `h` pour heure, `m` pour minute, `s` pour seconde (ne fonctionne qu'avec une seule unité).")
|
embed.add_field(name="Attention", value="Mauvais format pour le temps, `d` pour jour, `h` pour heure, `m` pour minute, `s` pour seconde (ne fonctionne qu'avec une seule unité)\nMet un `@` accolée à l'unité pour mentionner les gens mentionner dans ton message.")
|
||||||
elif seconds < 300: # 5 * 60
|
elif seconds < 300: # 5 * 60
|
||||||
embed.add_field(name="Attention", value="Tu as spécifié une durée trop courte, la durée minimum étant de 5 minutes.")
|
embed.add_field(name="Attention", value="Tu as spécifié une durée trop courte, la durée minimum étant de 5 minutes.")
|
||||||
elif seconds > 7776000: # 90 * 60 * 60 * 24
|
elif seconds > 7776000: # 90 * 60 * 60 * 24
|
||||||
|
@ -420,7 +429,12 @@ class Utils(commands.Cog):
|
||||||
else:
|
else:
|
||||||
await ctx.send(f"Ok, je t'en parles dans {counter} !")
|
await ctx.send(f"Ok, je t'en parles dans {counter} !")
|
||||||
await asyncio.sleep(seconds)
|
await asyncio.sleep(seconds)
|
||||||
return await ctx.send(ctx.author.mention, embed = discord.Embed(description = self._cleanCodeStringWithMention(reminder), timestamp = timestamp, color = discord.Colour.random()).set_footer(text=f"Message d'il y a {counter}"))
|
message = ctx.author.mention
|
||||||
|
if mention:
|
||||||
|
mentionList = self._getMentionInString(reminder)
|
||||||
|
for i in mentionList:
|
||||||
|
message += f" {i}"
|
||||||
|
return await ctx.send(message, embed = discord.Embed(description = self._cleanCodeStringWithMention(reminder), timestamp = timestamp, color = discord.Colour.random()).set_footer(text=f"Message d'il y a {counter}"))
|
||||||
else:
|
else:
|
||||||
embed.add_field(name="Attention", value="Mauvaise syntaxe : reminder <temps> <message>")
|
embed.add_field(name="Attention", value="Mauvaise syntaxe : reminder <temps> <message>")
|
||||||
await ctx.send(embed = embed)
|
await ctx.send(embed = embed)
|
||||||
|
|
Reference in a new issue