From 071078810b6de5916312448cb765f8cb72015624 Mon Sep 17 00:00:00 2001 From: Suwako Moriya Date: Sun, 5 Apr 2020 06:00:13 +0200 Subject: [PATCH] Added clean, newmember, purge, readrules and restart. --- modules/clean/__init__.py | 19 ++++++++++++++++ modules/clean/version.json | 11 +++++++++ modules/newmember/__init__.py | 34 ++++++++++++++++++++++++++++ modules/newmember/version.json | 11 +++++++++ modules/purge/__init__.py | 41 ++++++++++++++++++++++++++++++++++ modules/purge/version.json | 11 +++++++++ modules/readrules/__init__.py | 37 ++++++++++++++++++++++++++++++ modules/readrules/version.json | 11 +++++++++ modules/restart/__init__.py | 22 ++++++++++++++++++ modules/restart/version.json | 11 +++++++++ 10 files changed, 208 insertions(+) create mode 100644 modules/clean/__init__.py create mode 100644 modules/clean/version.json create mode 100644 modules/newmember/__init__.py create mode 100644 modules/newmember/version.json create mode 100644 modules/purge/__init__.py create mode 100644 modules/purge/version.json create mode 100644 modules/readrules/__init__.py create mode 100644 modules/readrules/version.json create mode 100644 modules/restart/__init__.py create mode 100644 modules/restart/version.json diff --git a/modules/clean/__init__.py b/modules/clean/__init__.py new file mode 100644 index 0000000..3d9bdae --- /dev/null +++ b/modules/clean/__init__.py @@ -0,0 +1,19 @@ +from modules.base import BaseClassPython + +class MainClass(BaseClassPython): + name = "clean" + authorized_roles=[522918472548745217] + help = { + "description": "Supprime des messages", + "commands": { + "`{prefix}{command}`": "Supprime tous les messages du bot dans le salon" + } + } + command_text = "clean" + + async def command(self, message, args, kwargs): + def is_me(m): + return m.author == self.client.user + + deleted = await message.channel.purge(limit=10000000, check=is_me) + await message.channel.send('Deleted {} message(s)'.format(len(deleted))) diff --git a/modules/clean/version.json b/modules/clean/version.json new file mode 100644 index 0000000..b27fd9a --- /dev/null +++ b/modules/clean/version.json @@ -0,0 +1,11 @@ +{ + "version":"0.1.0", + "type": "python", + "dependencies": { + + }, + "bot_version": { + "min": "0.1.0", + "max": "0.1.0" + } +} \ No newline at end of file diff --git a/modules/newmember/__init__.py b/modules/newmember/__init__.py new file mode 100644 index 0000000..2b5ab64 --- /dev/null +++ b/modules/newmember/__init__.py @@ -0,0 +1,34 @@ +import discord +import sys +from modules.base import BaseClassPython + + +class MainClass(BaseClassPython): + name = "NewMember" + color = 0xff071f + help_active = False + help = { + "description": "Module d'accueil", + "commands": { + } + } + + def __init__(self, client): + super().__init__(client) + self.config.init({"new_role":430845952388104212, + "guild":297780867286433792, + "motd":"Bienvenue sur le serveur de la communauté d'E-penser. Nous vous prions de lire le règlement afin d'accéder au serveur complet."}) + + async def on_ready(self): + guild = self.client.get_guild(self.config.guild) + for i, member in enumerate(guild.members): + if len(member.roles) == 1: + await member.add_roles(await self.client.id.get_role(id_=self.config.new_role, + guild=guild)) + if i%50==0: + print(i, member) + + async def on_member_join(self, member): + await member.add_roles(await self.client.id.get_role(id_=self.config.new_role, + guild=self.client.get_guild(self.config.guild))) + await member.send(self.config.motd) diff --git a/modules/newmember/version.json b/modules/newmember/version.json new file mode 100644 index 0000000..b27fd9a --- /dev/null +++ b/modules/newmember/version.json @@ -0,0 +1,11 @@ +{ + "version":"0.1.0", + "type": "python", + "dependencies": { + + }, + "bot_version": { + "min": "0.1.0", + "max": "0.1.0" + } +} \ No newline at end of file diff --git a/modules/purge/__init__.py b/modules/purge/__init__.py new file mode 100644 index 0000000..0d9b0cc --- /dev/null +++ b/modules/purge/__init__.py @@ -0,0 +1,41 @@ +import discord +import sys +from modules.base import BaseClassPython + +class MainClass(BaseClassPython): + name = "Purge" + color = 0xff0004 + help_active = True + authorized_roles=[522918472548745217] + help = { + "description": "Suppression de messages en block.", + "commands": { + "`{prefix}{command} `": "Supprime tous les messages du salon jusqu'au message spécifié", + } + } + command_text = "purge" + + async def command(self, message, args, kwargs): + message_id = None + try: + message_id = int(args[0]) + except ValueError: + pass + if len(args) and message_id is not None: + messages_list=[] + done=False + async for current in message.channel.history(limit=None): + if int(current.id) == message_id: + done = True + break + elif message.id != current.id: + messages_list.append(current) + if done: + chunks = [messages_list[x:x+99] for x in range(0, len(messages_list), 99)] + for chunk in chunks: + await message.channel.delete_messages(chunk) + await message.channel.send(f"**{len(messages_list)}** messages supprimés.") + else: + await message.channel.send("Le message spécifié n'a pas été trouvé.") + else: + await message.channel.send("Arguments invalides.") diff --git a/modules/purge/version.json b/modules/purge/version.json new file mode 100644 index 0000000..b27fd9a --- /dev/null +++ b/modules/purge/version.json @@ -0,0 +1,11 @@ +{ + "version":"0.1.0", + "type": "python", + "dependencies": { + + }, + "bot_version": { + "min": "0.1.0", + "max": "0.1.0" + } +} \ No newline at end of file diff --git a/modules/readrules/__init__.py b/modules/readrules/__init__.py new file mode 100644 index 0000000..e80b0b6 --- /dev/null +++ b/modules/readrules/__init__.py @@ -0,0 +1,37 @@ +import discord +import sys +from modules.base import BaseClassPython + + +class MainClass(BaseClassPython): + name = "ReadRules" + color = 0xff071f + help_active = False + help = { + "description": "Module d'accueil", + "commands": { + } + } + + def __init__(self, client): + super().__init__(client) + self.config.init({"accepted_role":430846685380345876, + "new_role":430845952388104212, + "listen_chan":430995739636793345, + "log_chan":429977240202248192, + "passwords":["cacahuète","cacahuete","cacahuètes","cacahuetes"], + "succes_pm":"Félicitations, vous êtes désormais un **e-penseur** accompli. Bienvenue sur le serveur E-penser.", + "succes":" est désormais un **e-penseur** accompli."}) + + async def on_message(self, message): + if message.channel.id == self.config.listen_chan: + if message.content.lower() in self.config.passwords: + new_role = await self.client.id.get_role(id_=self.config.new_role, guild=message.channel.guild) + if new_role in message.author.roles: + await message.author.remove_roles(new_role) + await message.author.add_roles(await self.client.id.get_role(id_=self.config.accepted_role, + guild=message.channel.guild)) + await message.author.send(self.config.succes_pm) + await message.channel.guild.get_channel(self.config.log_chan).send(message.author.mention + self.config.succes) + else: + await message.author.send(f"Le mot de passe que vous avez entré est incorrect : `{message.content}`.\nNous vous prions de lire le règlement afin d'accéder au serveur complet.") diff --git a/modules/readrules/version.json b/modules/readrules/version.json new file mode 100644 index 0000000..b27fd9a --- /dev/null +++ b/modules/readrules/version.json @@ -0,0 +1,11 @@ +{ + "version":"0.1.0", + "type": "python", + "dependencies": { + + }, + "bot_version": { + "min": "0.1.0", + "max": "0.1.0" + } +} \ No newline at end of file diff --git a/modules/restart/__init__.py b/modules/restart/__init__.py new file mode 100644 index 0000000..f16e33a --- /dev/null +++ b/modules/restart/__init__.py @@ -0,0 +1,22 @@ +import discord +import sys +from modules.base import BaseClassPython + + +class MainClass(BaseClassPython): + name = "Restart" + color = 0xff071f + help_active = True + authorized_roles = [431043517217898496] + help = { + "description": "Module gérant les redémarrages de Nikola Tesla", + "commands": { + "`{prefix}{command}`": "Redémarre le bot.", + } + } + command_text = "restart" + + async def command(self, message, args, kwargs): + await message.channel.send(f"{message.author.mention}, Le bot va redémarrer.") + await self.client.logout() + sys.exit(0) diff --git a/modules/restart/version.json b/modules/restart/version.json new file mode 100644 index 0000000..b27fd9a --- /dev/null +++ b/modules/restart/version.json @@ -0,0 +1,11 @@ +{ + "version":"0.1.0", + "type": "python", + "dependencies": { + + }, + "bot_version": { + "min": "0.1.0", + "max": "0.1.0" + } +} \ No newline at end of file