From 4ec7313a72de36d04c733d1e3a1ef5420e139073 Mon Sep 17 00:00:00 2001 From: Mylloon Date: Sun, 22 Aug 2021 15:47:40 +0200 Subject: [PATCH] global event --- src/cogs/reminder.py | 17 +---------------- src/main.py | 16 ++++++++++++++++ src/utils/page.py | 15 ++++++++++----- 3 files changed, 27 insertions(+), 21 deletions(-) diff --git a/src/cogs/reminder.py b/src/cogs/reminder.py index e1dbb34..53ba899 100644 --- a/src/cogs/reminder.py +++ b/src/cogs/reminder.py @@ -1,8 +1,7 @@ import discord from discord.ext import commands, tasks from discord_slash import cog_ext -from utils.reminder import Reminder -from utils.page import embedListeReminder, listReaction +from utils.reminder import Reminder, embedListeReminder from utils.core import getURLsInString, getMentionInString, isSlash, mySendHidden from utils.core import addReaction, mentionToUser, cleanCodeStringWithMentionAndURLs from utils.time import stringTempsVersSecondes, nowUTC, intToDatetime, timedeltaToString @@ -178,20 +177,6 @@ class ReminderDiscord(commands.Cog, name="Reminder"): else: return await self._reminderlist(ctx, userorpage, True) - @commands.Cog.listener() - async def on_raw_reaction_add(self, payload): - """Triggered when a reaction is added""" - message, embed = await listReaction(0, self.client, payload) - if message: - await message.edit(embed = embed) - - @commands.Cog.listener() - async def on_raw_reaction_remove(self, payload): - """Triggered when a reaction is removed""" - message, embed = await listReaction(0, self.client, payload) - if message: - await message.edit(embed = embed) - @commands.command(name='reminderdelete', aliases=["reminddelete", "rd"]) async def _reminderdelete(self, ctx, *id): """Suppprime un rappel.⁢⁢⁢⁢⁢\n ➡ Syntaxe: {PREFIX}reminderdelete/rd """ diff --git a/src/main.py b/src/main.py index 2823ef5..44fd143 100644 --- a/src/main.py +++ b/src/main.py @@ -6,6 +6,7 @@ from discord_slash import SlashCommand from discord.ext import commands from utils.reminder import Reminder from utils.core import load, addReaction +from utils.page import listReaction keys = load(["PREFIX", "TOKEN_DISCORD", "DEACTIVATE"]) customPrefix = keys["PREFIX"] @@ -74,5 +75,20 @@ async def on_message(message): prefix = await client.get_prefix(message) await ctx.send(f">>> Coucou !\nMon préfix est `{prefix}` et ma commande d'aide est `{prefix}help`") +"""Ses évenements sont pour le reminder et le todo""" +@client.event +async def on_raw_reaction_add(payload): + """Triggered when a reaction is added""" + message, embed = await listReaction(client, payload) + if message: + await message.edit(embed = embed) + +@client.event +async def on_raw_reaction_remove(payload): + """Triggered when a reaction is removed""" + message, embed = await listReaction(client, payload) + if message: + await message.edit(embed = embed) + print("Connexion à Discord...", end = " ") client.run(keys["TOKEN_DISCORD"]) diff --git a/src/utils/page.py b/src/utils/page.py index 9056aad..4a2d545 100644 --- a/src/utils/page.py +++ b/src/utils/page.py @@ -1,8 +1,8 @@ +from re import findall from utils.reminder import embedListeReminder from utils.todo import embedListeToDo -from re import findall -async def listReaction(type: int, client, payload): +async def listReaction(client, payload): """ Gère le changement de page du reminderlist ou du todolist avec les réactions. Types: 0 -> reminder | 1 -> todo @@ -18,7 +18,14 @@ async def listReaction(type: int, client, payload): embed = message.embeds[0].to_dict() if "description" in embed: # si c'est un embed avec une description if len(findall(r"\*\*(Rappels?|To Do('s)?) de <@\!?\d+>\*\* • Page \d+\/\d+", embed["description"])) == 1: # si c'est le bon embed - infoDescription = findall(r"\*\*Rappels? de <@\!?(\d+)>\*\* • Page (\d+)\/(\d+)", embed["description"])[0] + infoDescription = findall(r"\*\*(Rappels?|To Do('s)?) de <@\!?(\d+)>\*\* • Page (\d+)\/(\d+)", embed["description"])[0] + if "Rappel" in infoDescription[0]: + type = 0 + elif "To Do" in infoDescription[0]: + type = 1 + else: + raise Exception("Unknown type") + infoDescription = infoDescription[2:] utilisateur = client.get_user(int(infoDescription[0])) page = int(infoDescription[1]) refresh_message = None @@ -44,8 +51,6 @@ async def listReaction(type: int, client, payload): embed, _, refresh = await embedListeReminder(utilisateur, payload.guild_id, page, embed["color"], refresh_message) elif type == 1: embed, _, refresh = await embedListeToDo(utilisateur, page, embed["color"], refresh_message) - else: - raise Exception("Unknown type") if embed == False: return False, False if refresh == True: