Fix javadoc.
[rhynodge.git] / src / main / java / net / pterodactylus / rhynodge / triggers / NewComicTrigger.java
index 1b64c5b..0f89ddb 100644 (file)
@@ -19,6 +19,8 @@ package net.pterodactylus.rhynodge.triggers;
 
 import static com.google.common.base.Preconditions.*;
 
+import java.util.ArrayList;
+import java.util.Collections;
 import java.util.List;
 
 import net.pterodactylus.rhynodge.Reaction;
@@ -45,6 +47,9 @@ public class NewComicTrigger implements Trigger {
        /** The new comics. */
        private final List<Comic> newComics = Lists.newArrayList();
 
+       /** The latest comic state. */
+       private ComicState mergedComicState;
+
        @Override
        public State mergeStates(State previousState, State currentState) {
                checkArgument(previousState instanceof ComicState, "previous state must be a comic state");
@@ -54,7 +59,7 @@ public class NewComicTrigger implements Trigger {
                ComicState currentComicState = (ComicState) currentState;
 
                /* copy old state into new state. */
-               ComicState mergedComicState = new ComicState();
+               mergedComicState = new ComicState();
                for (Comic comic : previousComicState) {
                        mergedComicState.add(comic);
                }
@@ -124,6 +129,19 @@ public class NewComicTrigger implements Trigger {
                        generateComicHtml(html, newComic);
                }
 
+               List<Comic> latestComics = new ArrayList<Comic>(mergedComicState.comics());
+               Collections.reverse(latestComics);
+               int comicCount = 0;
+               for (Comic comic : latestComics) {
+                       if (newComics.contains(comic)) {
+                               continue;
+                       }
+                       generateComicHtml(html, comic);
+                       if (++comicCount == 7) {
+                               break;
+                       }
+               }
+
                return html.append("</body>").toString();
        }