import logger class Completion: def process(self, bot, channel, sender, message): """ Si la commande est bonne, le bot renvoie la liste des personnes ayant participé au sujet en cours mais n'ayant pas encore fini (commentaire %fini ou % fini). """ if message.lower() in ("!complet", ): logger.info("!complet caught.") if not bot.review.is_started: bot.send(channel, f"{sender}, pas de revue en cours.") return True if bot.review.current_topic is None: bot.send(channel, "% Pas de sujet en cours.") return True participants = bot.review.current_topic.participants find_text = f"# {bot.review.current_topic.title}" if bot.review.current_topic.collective: find_text = "#" + find_text text_found = False for message in bot.review.messages: if text_found: if message.text in ("%fini", "% fini", "%ras", "% ras"): participants = list(set(participants) - set((message.author,))) if find_text == message.text: text_found = True if participants == []: bot.send( channel, "% Tout le monde a terminé de s'exprimer sur le sujet courant \\o/", ) else: bot.send( channel, "% Personnes n'ayant pas encore terminé de s'exprimer sur le " f"sujet courant : {', '.join(participants)}", ) return True