[base-config] Ajout de la config configured pour ne pas executer des modules qui ne sont pas configurés (il faut donc manuellement passer cette coniguration à true dans les fichiers de config)

[mod-readrules] Ajout de la vérification de l'auteur du message
[base] Ajout de la vérification de l'auteur du message
This commit is contained in:
Louis Chauvet 2020-04-05 14:30:10 +02:00
parent 4c5820b19e
commit a898a48393
Signed by: fomys
GPG Key ID: 1ECA046A9615ABA0
3 changed files with 15 additions and 6 deletions

13
main.py
View File

@ -195,8 +195,10 @@ def event(func):
return lambda: None
else:
return func(self, *args, **kwargs)
return wrapper
"""def async_event(func):
async def wrapper(self, *args, **kwargs):
if self.reloading:
@ -205,7 +207,6 @@ def event(func):
return func(self, *args, **kwargs)
return wrapper"""
setup_logging()
log_discord = logging.getLogger('discord')
@ -337,9 +338,12 @@ class LBI(discord.Client):
super().dispatch(event, *args, **kwargs)
# Dispatch to modules
for module in self.modules.values():
module["initialized_class"].dispatch(event, *args, **kwargs)
if module["initialized_class"].config.configured:
module["initialized_class"].dispatch(event, *args, **kwargs)
else:
self.warning(f"Module {module['initialized_class'].name} is not configured.")
#@async_event
# @async_event
async def on_error(self, event_method, *args, **kwargs):
# This event is special because it is call directly
for module in self.modules.values():
@ -414,7 +418,7 @@ class ClientById:
else:
name = name.lower()
role = None
for guild in guilds:
for role_ in guild.roles:
if role_.name.lower() == name:
@ -461,6 +465,7 @@ communication = Communication(client1)
async def start_bot():
await client1.start(os.environ.get("DISCORD_TOKEN"))
print(os.path.join("/tmp", os.path.dirname(os.path.realpath(__file__))) + ".sock")
loop = asyncio.get_event_loop()

View File

@ -30,7 +30,7 @@ class BaseClass:
self.objects = Objects(path=os.path.join("data", self.name.lower()))
self.config = Config(parent=self.client.config, name="mod-" + self.name.lower())
self.config.init({"help_active": True, "color": 0x000000, "auth_everyone": False, "authorized_roles": [],
"authorized_users": [], "command_text": self.name.lower()})
"authorized_users": [], "command_text": self.name.lower(), "configured": False})
async def send_help(self, channel):
embed = discord.Embed(
@ -160,6 +160,8 @@ class BaseClass:
async def on_message(self, message: discord.Message):
"""Override this function to deactivate command_text parsing"""
if message.author.bot:
return
await self.parse_command(message)
async def command(self, message, args, kwargs):

View File

@ -22,13 +22,15 @@ class MainClass(BaseClassPython):
"succes": "{user} a désormais accepté."})
async def on_message(self, message):
if message.author.bot:
return
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))
guild=message.channel.guild))
await message.author.send(self.config.succes_pm)
await message.channel.guild.get_channel(self.config.log_chan).send(
self.config.succes.format(user=message.author.mention))