♻️ Move output generation to state
[rhynodge.git] / src / main / java / net / pterodactylus / rhynodge / filters / ComicSiteFilter.java
index 19286a6..6bc67cd 100644 (file)
@@ -21,6 +21,7 @@ import static com.google.common.base.Preconditions.checkArgument;
 
 import java.net.URI;
 import java.net.URISyntaxException;
+import java.util.Collections;
 import java.util.List;
 
 import net.pterodactylus.rhynodge.Filter;
@@ -57,12 +58,11 @@ public abstract class ComicSiteFilter implements Filter {
                List<String> imageComments = extractImageComments(htmlState.document());
 
                /* store comic, if found, into state. */
-               if (!title.isPresent() || imageUrls.isEmpty()) {
+               if (imageUrls.isEmpty()) {
                        return new FailedState();
                }
 
-               ComicState comicState = new ComicState();
-               Comic comic = new Comic(title.get());
+               Comic comic = new Comic(title.or(""));
                int imageCounter = 0;
                for (String imageUrl : imageUrls) {
                        String imageComment = (imageCounter < imageComments.size()) ? imageComments.get(imageCounter) : "";
@@ -75,9 +75,8 @@ public abstract class ComicSiteFilter implements Filter {
                                throw new IllegalStateException(String.format("Could not resolve image URL “%s” against base URL “%s”.", imageUrl, htmlState.uri()), use1);
                        }
                }
-               comicState.add(comic);
 
-               return comicState;
+               return new ComicState(Collections.singletonList(comic));
        }
 
        //