From 88559ae786e7d25e06c6c9e72958f91e71ae6c98 Mon Sep 17 00:00:00 2001 From: "Christian P. MOMON" Date: Sat, 19 May 2018 10:35:22 +0200 Subject: [PATCH] Fixed bug in duration statistics. Added review wait time check. Disable !fin when there is no user. --- src/org/april/hebdobot/model/Hebdobot.java | 48 ++++++++++++++-------- 1 file changed, 31 insertions(+), 17 deletions(-) diff --git a/src/org/april/hebdobot/model/Hebdobot.java b/src/org/april/hebdobot/model/Hebdobot.java index ded9108..596093a 100644 --- a/src/org/april/hebdobot/model/Hebdobot.java +++ b/src/org/april/hebdobot/model/Hebdobot.java @@ -316,24 +316,32 @@ public class Hebdobot extends PircBot { logger.info("!debut caught."); - // Start. - if (this.cronManager != null) + if ((this.reviewWaitTime != null) && (LocalTime.now().isBefore(this.reviewWaitTime))) { - try - { - this.cronManager.shutdown(); - } - catch (SchedulerException exception) - { - logger.warn("Scheduler shutdown failed.", exception); - } + sendMessage(sender + ", ce n'est pas encore l'heure."); + } + else + { + // Start. + if (this.cronManager != null) + { + try + { + this.cronManager.shutdown(); + } + catch (SchedulerException exception) + { + logger.warn("Scheduler shutdown failed.", exception); + } + } + this.review = new Review(sender, this.aliases); + sendMessage(sender, "Bonjour " + sender + ", vous êtes le conducteur de réunion."); + sendMessage(sender, "Pour terminer la réunion, tapez \"!fin\""); + sendMessage("% Début de la réunion hebdomadaire"); + sendMessage( + "% rappel : toute ligne commençant par % sera considérée comme un commentaire et non prise en compte dans la synthèse"); + sendMessage("% pour connaître le point courant, taper !courant"); } - this.review = new Review(sender, this.aliases); - sendMessage(sender, "Bonjour " + sender + ", vous êtes le conducteur de réunion."); - sendMessage(sender, "Pour terminer la réunion, tapez \"!fin\""); - sendMessage("% Début de la réunion hebdomadaire"); - sendMessage("% rappel : toute ligne commençant par % sera considérée comme un commentaire et non prise en compte dans la synthèse"); - sendMessage("% pour connaître le point courant, taper !courant"); } else if (StringUtils.equalsIgnoreCase(text, "!fin")) { @@ -348,6 +356,11 @@ public class Hebdobot extends PircBot { sendMessage(sender + ", vous n'êtes pas le conducteur de la réunion"); } + else if (this.review.getParticipants().size() == 0) + { + sendMessage("Aucun participant détecté. La revue est ignorée."); + this.review = null; + } else { String date = LocalDate.now().format(DateTimeFormatter.BASIC_ISO_DATE); @@ -414,12 +427,13 @@ public class Hebdobot extends PircBot { ReviewDatas datas = ReviewDatasFile.load(reviewDataFile); datas.clean(); + sendMessage("% " + ReviewStatsReporter.reportNewMaxUserCount(datas, this.review.getParticipants().size())); ReviewData currentReview = new ReviewData(LocalDateTime.now(), this.review.getParticipants().size(), (int) this.review.getDurationInMinutes()); datas.add(currentReview); sendMessage("% " + ReviewStatsReporter.reportUserCount(datas, currentReview.getUserCount())); - sendMessage("% " + ReviewStatsReporter.reportDuration(datas, currentReview.getUserCount())); + sendMessage("% " + ReviewStatsReporter.reportDuration(datas, currentReview.getDuration())); if (this.review.getParticipants().size() > 1) {