2024-10-09 18:25:35 +02:00
|
|
|
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).
|
|
|
|
"""
|
2024-11-22 17:38:38 +01:00
|
|
|
if message.lower() == "!complet":
|
2024-10-09 18:25:35 +02:00
|
|
|
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
|