diff --git a/.settings/org.eclipse.core.resources.prefs b/.settings/org.eclipse.core.resources.prefs new file mode 100644 index 0000000..6013dec --- /dev/null +++ b/.settings/org.eclipse.core.resources.prefs @@ -0,0 +1,7 @@ +#Sun Oct 09 17:20:12 CEST 2011 +eclipse.preferences.version=1 +encoding//src/main/java=UTF8 +encoding//src/main/resources=UTF8 +encoding//src/test/java=UTF8 +encoding//src/test/resources=UTF8 +encoding/=UTF8 diff --git a/pom.xml b/pom.xml index 92f7ce8..2025bbf 100644 --- a/pom.xml +++ b/pom.xml @@ -1,4 +1,5 @@ - + 4.0.0 fr.imirhil.april hebdobot @@ -104,4 +105,4 @@ runtime - \ No newline at end of file + diff --git a/src/main/java/fr/imirhil/april/hebdobot/irc/Bot.java b/src/main/java/fr/imirhil/april/hebdobot/irc/Bot.java index b92a687..22ab656 100644 --- a/src/main/java/fr/imirhil/april/hebdobot/irc/Bot.java +++ b/src/main/java/fr/imirhil/april/hebdobot/irc/Bot.java @@ -4,8 +4,6 @@ import java.util.Collection; import java.util.LinkedList; import org.jibble.pircbot.PircBot; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; import fr.imirhil.april.hebdobot.review.CollectiveTopic; import fr.imirhil.april.hebdobot.review.IndividualTopic; @@ -14,8 +12,6 @@ import fr.imirhil.april.hebdobot.review.Review; import fr.imirhil.april.hebdobot.review.Topic; public class Bot extends PircBot { - private static final Logger LOGGER = LoggerFactory.getLogger(Bot.class); - private Review review = null; private final String channel; private final Collection listeners = diff --git a/src/main/java/fr/imirhil/april/hebdobot/review/Review.java b/src/main/java/fr/imirhil/april/hebdobot/review/Review.java index 08446e0..4c7e0b7 100644 --- a/src/main/java/fr/imirhil/april/hebdobot/review/Review.java +++ b/src/main/java/fr/imirhil/april/hebdobot/review/Review.java @@ -10,7 +10,7 @@ import org.apache.commons.lang.StringUtils; import fr.imirhil.april.hebdobot.xml.UserAlias; public class Review { - private static final int LENGTH = 74; + private static final int LENGTH = 80; private final Set participants = new HashSet(); private final List individualTopics = @@ -67,7 +67,8 @@ public class Review { addBox(buffer, "Participants", '='); buffer.append("\n"); for (final String participant : this.participants) { - buffer.append("* " + userService.getRealName(participant) + "\n"); + chunkAndAppend(buffer, "* " + userService.getRealName(participant) + + "\n"); } buffer.append("\n"); @@ -80,11 +81,12 @@ public class Review { for (final IndividualTopic topic : this.individualTopics) { if (topic.hasParticipant(participant)) { buffer.append("\n"); - buffer.append(getTopic(topic)); + chunkAndAppend(buffer, getTopic(topic)); buffer.append("\n"); for (final Message message : topic .getMessages(participant)) { - buffer.append("* " + message.getContent() + "\n"); + chunkAndAppend(buffer, "* " + message.getContent() + + "\n"); } } } @@ -99,7 +101,7 @@ public class Review { buffer.append("\n"); addBox(buffer, topic.getTitle(), '-'); for (final Message message : topic.getMessages()) { - buffer.append("* " + message.getAuthor() + " : " + chunkAndAppend(buffer, "* " + message.getAuthor() + " : " + message.getContent() + "\n"); } } @@ -110,8 +112,9 @@ public class Review { addBox(buffer, "Log complet", '='); buffer.append("\n"); for (final Message message : this.messages) { - buffer.append("* " + message.getAuthor() + " : " - + message.getContent() + "\n"); + chunkAndAppend(buffer, + "* " + message.getAuthor() + " : " + message.getContent() + + "\n"); } return buffer.toString(); @@ -135,4 +138,43 @@ public class Review { buffer.append(getLine(title, ' ')); buffer.append(getLine(c)); } + + private static String chunk(final String content, final int length) { + final String[] words = content.split(" "); + final StringBuffer result = new StringBuffer(); + StringBuffer current = new StringBuffer(); + + for (final String word : words) { + if (current.length() + word.length() > length) { + if (result.length() > 0) { + result.append("\n"); + } + result.append(current); + current = new StringBuffer(word); + } else { + if (current.length() > 0) { + current.append(" "); + } + current.append(word); + } + } + + if (current.length() > 0) { + if (result.length() > 0) { + result.append("\n"); + } + result.append(current); + } + + return result.toString(); + } + + private static String chunk(final String content) { + return chunk(content, LENGTH); + } + + private static void chunkAndAppend(final StringBuffer buffer, + final String content) { + buffer.append(chunk(content)); + } }