hebdobot/hooks/completion.py

44 lines
1.7 KiB
Python

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() == "!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