from dataclasses import dataclass import time from bot.hooks import hooks from bot.review.review import Review @dataclass class Answer: target: str message: str class Hebdobot: def __init__(self, settings, channel, nickname="hebdobot"): self.settings = settings self.channel = channel self.nickname = nickname self.answers = [] # Gestion de la revue hebdomadaire self.review = Review() def on_private_message(self, channel, sender, message): """ Tous les messages privés sont ignorés. Si l'utilisateur tente une commande, on lui signale de le faire plutôt sur le canal public. """ self.answers = [] if message[0] == "!": self.send(sender, "vos commandes dans le salon public") return self.answers def on_public_message(self, channel, sender, message): """ Tous les messages publics sont pris en compte. On utilise les hooks chargés au démarrage pour cela. """ self.answers = [] if self.review.is_started: self.review.add_message(sender, message) for hook in hooks: if hook.process(self, channel, sender, message): break return self.answers def send(self, target, message): self.answers.append(Answer(target, message)) if self.review.is_started and target == self.channel: self.review.add_message(self.nickname, message)