From fa6741b54f2ef4496edf553e9d407d17412632d3 Mon Sep 17 00:00:00 2001 From: Adrian Malacoda Date: Sun, 12 Mar 2017 17:18:32 -0500 Subject: [PATCH] fixes for mediawiki searcher, added tests for gammapedia and infinitypedia --- src/main.rs | 2 ++ src/searchers/mediawiki.rs | 5 ++--- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/src/main.rs b/src/main.rs index c2b69d2..2a906ee 100644 --- a/src/main.rs +++ b/src/main.rs @@ -18,6 +18,8 @@ fn main () { let mut searchers = AggregateSearcher::new(); searchers.add_searcher("mtg", Box::new(MtgSearcher::new())); searchers.add_searcher("ygo", Box::new(YugiohSearcher::new())); + searchers.add_searcher("gp", Box::new(MediawikiSearcher::new(String::from("https://gammapedia.monarch-pass.net/wiki/")))); + searchers.add_searcher("ip", Box::new(MediawikiSearcher::new(String::from("http://infinitypedia.org/wiki/")))); searchers.add_searcher("wp", Box::new(MediawikiSearcher::new(String::from("https://en.wikipedia.org/wiki/")))); match searchers.exact_search(&term) { Some(item) => { diff --git a/src/searchers/mediawiki.rs b/src/searchers/mediawiki.rs index be950d8..3680688 100644 --- a/src/searchers/mediawiki.rs +++ b/src/searchers/mediawiki.rs @@ -6,7 +6,7 @@ use hyper::Client; use hyper::status::StatusCode; use select::document::Document; -use select::predicate::{Name, Class, Attr}; +use select::predicate::Name; use retry; use retry::retry; @@ -74,8 +74,7 @@ impl MediawikiSearcher { fn parse_entry (&self, page: String) -> Result { let document = Document::from(&page[..]); let page_name = String::from(document.find(Name("h1")).iter().next().expect("expected h1").text()); - let page_url = String::from(document.find(Attr("rel", "canonical")).iter().next().expect("expected link rel='canonical'") - .attr("href").expect("expected href attribute")); + let page_url = format!("{}{}", self.baseurl, page_name.replace(" ", "_")); Result::Ok(WikiPage { name: page_name,