X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Fnet%2Fpterodactylus%2Frhynodge%2Ffilters%2Fcomics%2FCyanideAndHappinessComicFilter.java;h=f8d116f12f1929b56f9a968750b490f337809aea;hb=fae0810b2d4165afcfac30e8ed6a0cfba4621629;hp=b51e95985615b0516559c059c3df3aca0d4d092d;hpb=d2b76f53ba55364f37dab1436f44e1a6f94952a4;p=rhynodge.git diff --git a/src/main/java/net/pterodactylus/rhynodge/filters/comics/CyanideAndHappinessComicFilter.java b/src/main/java/net/pterodactylus/rhynodge/filters/comics/CyanideAndHappinessComicFilter.java index b51e959..f8d116f 100644 --- a/src/main/java/net/pterodactylus/rhynodge/filters/comics/CyanideAndHappinessComicFilter.java +++ b/src/main/java/net/pterodactylus/rhynodge/filters/comics/CyanideAndHappinessComicFilter.java @@ -17,6 +17,12 @@ package net.pterodactylus.rhynodge.filters.comics; +import static com.google.common.base.Optional.absent; +import static com.google.common.base.Optional.of; + +import java.net.URI; +import java.net.URISyntaxException; +import java.net.URL; import java.util.Collections; import java.util.List; @@ -39,17 +45,27 @@ public class CyanideAndHappinessComicFilter extends ComicSiteFilter { @Override protected Optional extractTitle(Document document) { - return Optional.of(""); + return extractImageUrls(document).isEmpty() ? absent() : of(""); } @Override protected List extractImageUrls(Document document) { - Elements imageTags = document.select("img[alt=Cyanide and Happiness, a daily webcomic]"); + Elements imageTags = document.select("img#main-comic"); return FluentIterable.from(imageTags).transform(new Function() { @Override public String apply(Element input) { - return input.attr("src"); + String imageUrl = input.attr("src"); + try { + return new URI(document.baseUri()).resolve(imageUrl).toString(); + } catch (URISyntaxException e) { + /* ignore. */ + } + if (!imageUrl.startsWith("/")) { + return imageUrl; + } + String protocol = document.baseUri().substring(0, document.baseUri().indexOf('/')); + return protocol + imageUrl; } }).toList(); }