Display missing participants on the current topic
This commit is contained in:
parent
db61dc2390
commit
ad5445be52
1
pom.xml
1
pom.xml
@ -141,7 +141,6 @@
|
||||
<groupId>commons-collections</groupId>
|
||||
<artifactId>commons-collections</artifactId>
|
||||
<version>3.2.1</version>
|
||||
<scope>runtime</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.springframework</groupId>
|
||||
|
@ -3,6 +3,8 @@ package fr.imirhil.april.hebdobot.irc;
|
||||
import java.util.Collection;
|
||||
import java.util.LinkedList;
|
||||
|
||||
import org.apache.commons.collections.CollectionUtils;
|
||||
import org.apache.commons.lang.StringUtils;
|
||||
import org.jibble.pircbot.PircBot;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
@ -66,6 +68,7 @@ public class Bot extends PircBot {
|
||||
this.handleMessage(sender, message);
|
||||
}
|
||||
}
|
||||
this.handleManquants(sender, message);
|
||||
this.handleComment(sender, message);
|
||||
this.handleDisplayCurrent(sender, message);
|
||||
this.handleHelp(sender, message);
|
||||
@ -86,21 +89,54 @@ public class Bot extends PircBot {
|
||||
this.sendMessage(sender, "— # titre : démarrer un sujet individuel");
|
||||
this.sendMessage(sender, "— ## titre : démarrer un sujet collectif");
|
||||
this.sendMessage(sender, "— !courant : affiche le sujet en cours");
|
||||
this.sendMessage(
|
||||
sender,
|
||||
"— !manquants : affiche les participants qui n'ont pas répondu sur le dernier sujet");
|
||||
this.sendMessage(sender, "— % message : un commentaire");
|
||||
}
|
||||
|
||||
private void handleMessage(final String sender, final String message) {
|
||||
private boolean handleMessage(final String sender, final String message) {
|
||||
if (this.review == null || message.startsWith("%")) {
|
||||
return;
|
||||
return false;
|
||||
}
|
||||
this.review.add(new Message(sender, message));
|
||||
return true;
|
||||
}
|
||||
|
||||
private void handleComment(final String sender, final String message) {
|
||||
private boolean handleManquants(final String sender, final String message) {
|
||||
if (this.review == null || !"!manquants".equalsIgnoreCase(message)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
final Topic topic = this.review.getCurrentTopic();
|
||||
if (topic == null) {
|
||||
this.sendMessage("Aucun sujet traité");
|
||||
return true;
|
||||
}
|
||||
|
||||
final Collection<String> participants = this.review.getParticipants();
|
||||
final Collection<String> currentParticipants = topic.getParticipants();
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
final Collection<String> missing =
|
||||
CollectionUtils.subtract(participants, currentParticipants);
|
||||
if (missing.isEmpty()) {
|
||||
this.sendMessage("Aucun participant manquant \\o/");
|
||||
return true;
|
||||
}
|
||||
|
||||
this.sendMessage(String.format(
|
||||
"Les participants suivants sont manquants : %1s",
|
||||
StringUtils.join(missing, ", ")));
|
||||
return true;
|
||||
}
|
||||
|
||||
private boolean handleComment(final String sender, final String message) {
|
||||
if (this.review == null) {
|
||||
return;
|
||||
return false;
|
||||
}
|
||||
this.review.addRaw(new Message(sender, message));
|
||||
return true;
|
||||
}
|
||||
|
||||
private boolean handleDie(final String sender, final String message) {
|
||||
|
@ -1,5 +1,6 @@
|
||||
package fr.imirhil.april.hebdobot.review;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.HashSet;
|
||||
import java.util.LinkedList;
|
||||
import java.util.List;
|
||||
@ -200,4 +201,15 @@ public class Review {
|
||||
add(buffer, chunk(content));
|
||||
}
|
||||
|
||||
public Collection<String> getParticipants() {
|
||||
final Collection<String> reviewers = new HashSet<String>();
|
||||
for (final Topic topic : this.individualTopics) {
|
||||
reviewers.addAll(topic.getParticipants());
|
||||
}
|
||||
for (final Topic topic : this.collectiveTopics) {
|
||||
reviewers.addAll(topic.getParticipants());
|
||||
}
|
||||
return reviewers;
|
||||
}
|
||||
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user