import logger


class CancelPreviousInput:
    def process(self, bot, channel, sender, message):
        """
        Si la commande est la bonne, on supprime le dernier message poussé par
        l'utilisateur lors de la revue, si possible.
        """
        if message.lower() in ("!oups", "!oops", "!cancelprevious"):
            logger.info("!oups caught.")

            if not bot.review.is_started:
                bot.send(channel, f"{sender}, pas de revue en cours.")
                return True
            elif not bot.review.current_topic:
                bot.send(channel, f"{sender}, pas de sujet en cours.")
                return True
            else:
                previous_message = bot.review.current_topic.cancel_previous(sender)
                if previous_message:
                    bot.send(
                        channel,
                        f"{sender}, suppression de votre précédente entrée : "
                        f"{previous_message}",
                    )
                    return True
                else:
                    bot.send(channel, f"{sender}, vous n'avez pas d'entrée en cours.")
                    return True