🐛 Fix broken change detection
[rhynodge.git] / src / main / java / net / pterodactylus / rhynodge / watchers / ScandinaviaAndTheWorldWatcher.java
index 6e3cbac..cb7775f 100644 (file)
 
 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.mergers.ComicMerger;
 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 ComicMerger());
+       }
+
+       private static List<Filter> createFilters() {
+               ImmutableList.Builder<Filter> filters = ImmutableList.builder();
+
+               filters.add(new HtmlFilter());
+               filters.add(new ExtractUrlFilter() {
+
+                       @Override
+                       protected Optional<String> extractUrl(Document document) {
+                               Elements linkTag = document.select("a.btn-success");
+                               return linkTag.hasAttr("href") ? Optional.of(linkTag.attr("href")) : Optional.<String>absent();
+                       }
+               });
+               filters.add(new HttpQueryFilter());
+               filters.add(new HtmlFilter());
+               filters.add(new ScandinaviaAndTheWorldComicFilter());
+
+               return filters.build();
        }
 
 }