From 9bf1d228767ac78023c2aab4d898525815b826bf Mon Sep 17 00:00:00 2001 From: Anders Olsson Date: Tue, 18 Dec 2018 13:33:53 +0100 Subject: [PATCH] Move code around. --- src/main.rs | 72 +++------------------------------- src/probe.rs | 15 +++++++ src/probe/eniro.rs | 10 +++++ src/probe/hitta.rs | 32 +++++++++++++++ src/probe/konsument_info.rs | 10 +++++ src/probe/telefonforsaljare.rs | 10 +++++ src/probe/vem_ringde.rs | 10 +++++ 7 files changed, 93 insertions(+), 66 deletions(-) create mode 100644 src/probe.rs create mode 100644 src/probe/eniro.rs create mode 100644 src/probe/hitta.rs create mode 100644 src/probe/konsument_info.rs create mode 100644 src/probe/telefonforsaljare.rs create mode 100644 src/probe/vem_ringde.rs diff --git a/src/main.rs b/src/main.rs index 0cc08e0..a89d685 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,68 +1,10 @@ use std::env; use directories::ProjectDirs; -use scraper::{Html, Selector}; -trait Probe { - fn search(&mut self, _: &str); -} +mod probe; -// https://www.hitta.se/vem-ringde/{} -struct Hitta; - -impl Probe for Hitta { - fn search(&mut self, number: &str) { - let body = reqwest::get(&format!("https://www.hitta.se/vem-ringde/{}", number)) - .unwrap() - .text() - .unwrap(); - - let document = Html::parse_document(&body); - - let selector = Selector::parse(r#"div[class^="Header__WhoCalledHeader"] > h1"#).unwrap(); - - print!("Hitta.se:"); - - for element in document.select(&selector) { - println!(" {}", element.text().collect::()); - } - - // Comments. - let selector = Selector::parse(r#".topComment--comment"#).unwrap(); - - for element in document.select(&selector) { - println!(" * {}", element.text().collect::()); - } - } -} - -// https://gulasidorna.eniro.se/hitta:{} -struct Eniro; - -impl Probe for Eniro { - fn search(&mut self, _: &str) {} -} - -// http://vemringde.se/?q={} -struct VemRingde; - -impl Probe for VemRingde { - fn search(&mut self, _: &str) {} -} - -// http://www.telefonforsaljare.nu/telefonnummer/{}/ -struct Telefonforsaljare; - -impl Probe for Telefonforsaljare { - fn search(&mut self, _: &str) {} -} - -// http://konsumentinfo.se/telefonnummer/sverige/{} -struct KonsumentInfo; - -impl Probe for KonsumentInfo { - fn search(&mut self, _: &str) {} -} +use crate::probe::*; struct Context { dirs: ProjectDirs, @@ -79,9 +21,7 @@ impl Context { None } - fn cache_set(&mut self, key: &str) { - - } + fn cache_set(&mut self, key: &str) {} } fn main() { @@ -96,11 +36,11 @@ fn main() { .expect("must specify a number to search for"); let mut probes: Vec> = vec![ - Box::new(Hitta), Box::new(Eniro), - Box::new(VemRingde), - Box::new(Telefonforsaljare), + Box::new(Hitta), Box::new(KonsumentInfo), + Box::new(Telefonforsaljare), + Box::new(VemRingde), ]; for probe in &mut probes { diff --git a/src/probe.rs b/src/probe.rs new file mode 100644 index 0000000..5a317a8 --- /dev/null +++ b/src/probe.rs @@ -0,0 +1,15 @@ +mod eniro; +mod hitta; +mod konsument_info; +mod telefonforsaljare; +mod vem_ringde; + +pub use self::eniro::Eniro; +pub use self::hitta::Hitta; +pub use self::konsument_info::KonsumentInfo; +pub use self::telefonforsaljare::Telefonforsaljare; +pub use self::vem_ringde::VemRingde; + +pub trait Probe { + fn search(&mut self, _: &str); +} diff --git a/src/probe/eniro.rs b/src/probe/eniro.rs new file mode 100644 index 0000000..55ecfa1 --- /dev/null +++ b/src/probe/eniro.rs @@ -0,0 +1,10 @@ +use scraper::{Html, Selector}; + +use crate::probe::Probe; + +// https://gulasidorna.eniro.se/hitta:{} +pub struct Eniro; + +impl Probe for Eniro { + fn search(&mut self, _: &str) {} +} diff --git a/src/probe/hitta.rs b/src/probe/hitta.rs new file mode 100644 index 0000000..0ce07ad --- /dev/null +++ b/src/probe/hitta.rs @@ -0,0 +1,32 @@ +use scraper::{Html, Selector}; + +use crate::probe::Probe; + +// https://www.hitta.se/vem-ringde/{} +pub struct Hitta; + +impl Probe for Hitta { + fn search(&mut self, number: &str) { + let body = reqwest::get(&format!("https://www.hitta.se/vem-ringde/{}", number)) + .unwrap() + .text() + .unwrap(); + + let document = Html::parse_document(&body); + + let selector = Selector::parse(r#"div[class^="Header__WhoCalledHeader"] > h1"#).unwrap(); + + print!("Hitta.se:"); + + for element in document.select(&selector) { + println!(" {}", element.text().collect::()); + } + + // Comments. + let selector = Selector::parse(r#".topComment--comment"#).unwrap(); + + for element in document.select(&selector) { + println!(" * {}", element.text().collect::()); + } + } +} diff --git a/src/probe/konsument_info.rs b/src/probe/konsument_info.rs new file mode 100644 index 0000000..baf3c69 --- /dev/null +++ b/src/probe/konsument_info.rs @@ -0,0 +1,10 @@ +use scraper::{Html, Selector}; + +use crate::probe::Probe; + +// http://konsumentinfo.se/telefonnummer/sverige/{} +pub struct KonsumentInfo; + +impl Probe for KonsumentInfo { + fn search(&mut self, _: &str) {} +} diff --git a/src/probe/telefonforsaljare.rs b/src/probe/telefonforsaljare.rs new file mode 100644 index 0000000..9bbd40c --- /dev/null +++ b/src/probe/telefonforsaljare.rs @@ -0,0 +1,10 @@ +use scraper::{Html, Selector}; + +use crate::probe::Probe; + +// http://www.telefonforsaljare.nu/telefonnummer/{}/ +pub struct Telefonforsaljare; + +impl Probe for Telefonforsaljare { + fn search(&mut self, _: &str) {} +} diff --git a/src/probe/vem_ringde.rs b/src/probe/vem_ringde.rs new file mode 100644 index 0000000..72bd545 --- /dev/null +++ b/src/probe/vem_ringde.rs @@ -0,0 +1,10 @@ +use scraper::{Html, Selector}; + +use crate::probe::Probe; + +// http://vemringde.se/?q={} +pub struct VemRingde; + +impl Probe for VemRingde { + fn search(&mut self, _: &str) {} +}