fixes for mediawiki searcher, added tests for gammapedia and infinitypedia
This commit is contained in:
parent
542c76b175
commit
fa6741b54f
@ -18,6 +18,8 @@ fn main () {
|
|||||||
let mut searchers = AggregateSearcher::new();
|
let mut searchers = AggregateSearcher::new();
|
||||||
searchers.add_searcher("mtg", Box::new(MtgSearcher::new()));
|
searchers.add_searcher("mtg", Box::new(MtgSearcher::new()));
|
||||||
searchers.add_searcher("ygo", Box::new(YugiohSearcher::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/"))));
|
searchers.add_searcher("wp", Box::new(MediawikiSearcher::new(String::from("https://en.wikipedia.org/wiki/"))));
|
||||||
match searchers.exact_search(&term) {
|
match searchers.exact_search(&term) {
|
||||||
Some(item) => {
|
Some(item) => {
|
||||||
|
@ -6,7 +6,7 @@ use hyper::Client;
|
|||||||
use hyper::status::StatusCode;
|
use hyper::status::StatusCode;
|
||||||
|
|
||||||
use select::document::Document;
|
use select::document::Document;
|
||||||
use select::predicate::{Name, Class, Attr};
|
use select::predicate::Name;
|
||||||
|
|
||||||
use retry;
|
use retry;
|
||||||
use retry::retry;
|
use retry::retry;
|
||||||
@ -74,8 +74,7 @@ impl MediawikiSearcher {
|
|||||||
fn parse_entry (&self, page: String) -> Result<WikiPage, Error> {
|
fn parse_entry (&self, page: String) -> Result<WikiPage, Error> {
|
||||||
let document = Document::from(&page[..]);
|
let document = Document::from(&page[..]);
|
||||||
let page_name = String::from(document.find(Name("h1")).iter().next().expect("expected h1").text());
|
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'")
|
let page_url = format!("{}{}", self.baseurl, page_name.replace(" ", "_"));
|
||||||
.attr("href").expect("expected href attribute"));
|
|
||||||
|
|
||||||
Result::Ok(WikiPage {
|
Result::Ok(WikiPage {
|
||||||
name: page_name,
|
name: page_name,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user