X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Fnet%2Fpterodactylus%2Frhynodge%2Fwatchers%2FScandinaviaAndTheWorldWatcher.java;h=fdcae7d5ac3205a879ec8d8945fe3e4273498603;hb=983e83be4643ce2ed634a0d186e1465d71480029;hp=6e3cbace9bd323836b33d3aa81ebe3b1d22dec80;hpb=166659512aeb4fb07410a86ac7ea9e3cd8bb3f8f;p=rhynodge.git diff --git a/src/main/java/net/pterodactylus/rhynodge/watchers/ScandinaviaAndTheWorldWatcher.java b/src/main/java/net/pterodactylus/rhynodge/watchers/ScandinaviaAndTheWorldWatcher.java index 6e3cbac..fdcae7d 100644 --- a/src/main/java/net/pterodactylus/rhynodge/watchers/ScandinaviaAndTheWorldWatcher.java +++ b/src/main/java/net/pterodactylus/rhynodge/watchers/ScandinaviaAndTheWorldWatcher.java @@ -17,12 +17,20 @@ package net.pterodactylus.rhynodge.watchers; +import java.util.List; + +import net.pterodactylus.rhynodge.Filter; +import net.pterodactylus.rhynodge.filters.ExtractUrlFilter; import net.pterodactylus.rhynodge.filters.HtmlFilter; +import net.pterodactylus.rhynodge.filters.HttpQueryFilter; import net.pterodactylus.rhynodge.filters.comics.ScandinaviaAndTheWorldComicFilter; import net.pterodactylus.rhynodge.queries.HttpQuery; import net.pterodactylus.rhynodge.triggers.NewComicTrigger; -import java.util.Arrays; +import com.google.common.base.Optional; +import com.google.common.collect.ImmutableList; +import org.jsoup.nodes.Document; +import org.jsoup.select.Elements; /** * {@link net.pterodactylus.rhynodge.Watcher} implementation that watches for new Scandinavia and the World comics. @@ -32,7 +40,26 @@ import java.util.Arrays; public class ScandinaviaAndTheWorldWatcher extends DefaultWatcher { public ScandinaviaAndTheWorldWatcher() { - super(new HttpQuery("http://satwcomic.com/"), Arrays.asList(new HtmlFilter(), new ScandinaviaAndTheWorldComicFilter()), new NewComicTrigger()); + super(new HttpQuery("http://satwcomic.com/"), createFilters(), new NewComicTrigger()); + } + + private static List createFilters() { + ImmutableList.Builder filters = ImmutableList.builder(); + + filters.add(new HtmlFilter()); + filters.add(new ExtractUrlFilter() { + + @Override + protected Optional extractUrl(Document document) { + Elements linkTag = document.select("a.btn-success"); + return linkTag.hasAttr("href") ? Optional.of(linkTag.attr("href")) : Optional.absent(); + } + }); + filters.add(new HttpQueryFilter()); + filters.add(new HtmlFilter()); + filters.add(new ScandinaviaAndTheWorldComicFilter()); + + return filters.build(); } }