X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Fnet%2Fpterodactylus%2Frhynodge%2Ffilters%2FComicSiteFilter.java;h=1d9e6f7273c34a6e48a82751be9067cd6896d5d6;hb=69d447cc799fe71306d66a495e53698f0bab77c1;hp=6643745f26e8512e6f30f90623dbe0105a9d0e53;hpb=16d05d55e004158e28ea43f74f9f092741ef7aca;p=rhynodge.git diff --git a/src/main/java/net/pterodactylus/rhynodge/filters/ComicSiteFilter.java b/src/main/java/net/pterodactylus/rhynodge/filters/ComicSiteFilter.java index 6643745..1d9e6f7 100644 --- a/src/main/java/net/pterodactylus/rhynodge/filters/ComicSiteFilter.java +++ b/src/main/java/net/pterodactylus/rhynodge/filters/ComicSiteFilter.java @@ -17,7 +17,7 @@ package net.pterodactylus.rhynodge.filters; -import static com.google.common.base.Preconditions.*; +import static com.google.common.base.Preconditions.checkArgument; import java.net.URI; import java.net.URISyntaxException; @@ -28,6 +28,7 @@ import net.pterodactylus.rhynodge.State; import net.pterodactylus.rhynodge.states.ComicState; import net.pterodactylus.rhynodge.states.ComicState.Comic; import net.pterodactylus.rhynodge.states.ComicState.Strip; +import net.pterodactylus.rhynodge.states.FailedState; import net.pterodactylus.rhynodge.states.HtmlState; import com.google.common.base.Optional; @@ -47,7 +48,6 @@ public abstract class ComicSiteFilter implements Filter { /* initialize states: */ HtmlState htmlState = (HtmlState) state; - ComicState comicState = new ComicState(); /* extract comics. */ Optional title = extractTitle(htmlState.document()); @@ -55,22 +55,25 @@ public abstract class ComicSiteFilter implements Filter { List imageComments = extractImageComments(htmlState.document()); /* store comic, if found, into state. */ - if (title.isPresent() && !imageUrls.isEmpty()) { - Comic comic = new Comic(title.get()); - int imageCounter = 0; - for (String imageUrl : imageUrls) { - String imageComment = (imageCounter < imageComments.size()) ? imageComments.get(imageCounter) : ""; - try { - URI stripUri = new URI(htmlState.uri()).resolve(imageUrl); - Strip strip = new Strip(stripUri.toString(), imageComment); - imageCounter++; - comic.add(strip); - } catch (URISyntaxException use1) { - throw new IllegalStateException(String.format("Could not resolve image URL “%s” against base URL “%s”.", imageUrl, htmlState.uri()), use1); - } + if (!title.isPresent() || imageUrls.isEmpty()) { + return new FailedState(); + } + + ComicState comicState = new ComicState(); + Comic comic = new Comic(title.get()); + int imageCounter = 0; + for (String imageUrl : imageUrls) { + String imageComment = (imageCounter < imageComments.size()) ? imageComments.get(imageCounter) : ""; + try { + URI stripUri = new URI(htmlState.uri()).resolve(imageUrl); + Strip strip = new Strip(stripUri.toString(), imageComment); + imageCounter++; + comic.add(strip); + } catch (URISyntaxException use1) { + throw new IllegalStateException(String.format("Could not resolve image URL “%s” against base URL “%s”.", imageUrl, htmlState.uri()), use1); } - comicState.add(comic); } + comicState.add(comic); return comicState; }