Clean up output, and fix more tests.
This commit is contained in:
@@ -22,7 +22,13 @@ fn from_html(document: &str) -> Result<Entry, ()> {
|
|||||||
let selector = Selector::parse("div.PhoneNoHit div.search-info-container p").unwrap();
|
let selector = Selector::parse("div.PhoneNoHit div.search-info-container p").unwrap();
|
||||||
|
|
||||||
if let Some(element) = html.select(&selector).next() {
|
if let Some(element) = html.select(&selector).next() {
|
||||||
let message = element.inner_html();
|
let message = element
|
||||||
|
.text()
|
||||||
|
.map(str::trim)
|
||||||
|
.filter(|s| !s.is_empty())
|
||||||
|
.collect::<Vec<_>>()
|
||||||
|
.join(" ");
|
||||||
|
|
||||||
let message = htmlescape::decode_html(&message).unwrap();
|
let message = htmlescape::decode_html(&message).unwrap();
|
||||||
|
|
||||||
history.push(message);
|
history.push(message);
|
||||||
@@ -94,10 +100,7 @@ mod tests {
|
|||||||
|
|
||||||
let expected = Entry {
|
let expected = Entry {
|
||||||
messages: vec![],
|
messages: vec![],
|
||||||
history: vec![
|
history: vec!["3464 denna vecka och 6637 totalt.".to_string()],
|
||||||
"<strong>3464</strong> denna vecka och <strong>6637</strong> totalt.<!-- --> "
|
|
||||||
.to_string(),
|
|
||||||
],
|
|
||||||
comments: vec![],
|
comments: vec![],
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -123,10 +126,7 @@ mod tests {
|
|||||||
|
|
||||||
let expected = Entry {
|
let expected = Entry {
|
||||||
messages: vec![],
|
messages: vec![],
|
||||||
history: vec![
|
history: vec!["16 denna vecka och 98 totalt.".to_string()],
|
||||||
"<strong>16</strong> denna vecka och <strong>98</strong> totalt.<!-- --> "
|
|
||||||
.to_string(),
|
|
||||||
],
|
|
||||||
comments: vec![],
|
comments: vec![],
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -139,10 +139,7 @@ mod tests {
|
|||||||
|
|
||||||
let expected = Entry {
|
let expected = Entry {
|
||||||
messages: vec![],
|
messages: vec![],
|
||||||
history: vec![
|
history: vec!["20 denna vecka och 602 totalt.".to_string()],
|
||||||
"<strong>20</strong> denna vecka och <strong>602</strong> totalt.<!-- --> "
|
|
||||||
.to_string(),
|
|
||||||
],
|
|
||||||
comments: vec![],
|
comments: vec![],
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -155,10 +152,7 @@ mod tests {
|
|||||||
|
|
||||||
let expected = Entry {
|
let expected = Entry {
|
||||||
messages: vec![],
|
messages: vec![],
|
||||||
history: vec![
|
history: vec!["29 denna vecka och 900 totalt.".to_string()],
|
||||||
"<strong>29</strong> denna vecka och <strong>900</strong> totalt.<!-- --> "
|
|
||||||
.to_string(),
|
|
||||||
],
|
|
||||||
comments: vec![],
|
comments: vec![],
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -171,10 +165,7 @@ mod tests {
|
|||||||
|
|
||||||
let expected = Entry {
|
let expected = Entry {
|
||||||
messages: vec![],
|
messages: vec![],
|
||||||
history: vec![
|
history: vec!["303 denna vecka och 304 totalt.".to_string()],
|
||||||
"<strong>303</strong> denna vecka och <strong>304</strong> totalt.<!-- --> "
|
|
||||||
.to_string(),
|
|
||||||
],
|
|
||||||
comments: vec![],
|
comments: vec![],
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -33,10 +33,21 @@ fn from_html(document: &str) -> Result<Entry, ()> {
|
|||||||
|
|
||||||
let mut history = Vec::new();
|
let mut history = Vec::new();
|
||||||
|
|
||||||
let selector = Selector::parse("#content p:nth-child(5)").unwrap();
|
let selector = if messages.is_empty() {
|
||||||
|
Selector::parse("#content p:nth-child(4)").unwrap()
|
||||||
|
} else {
|
||||||
|
Selector::parse("#content p:nth-child(5)").unwrap()
|
||||||
|
};
|
||||||
|
|
||||||
if let Some(element) = html.select(&selector).next() {
|
if let Some(element) = html.select(&selector).next() {
|
||||||
history.push(element.inner_html());
|
let message = element
|
||||||
|
.text()
|
||||||
|
.map(str::trim)
|
||||||
|
.filter(|s| !s.is_empty())
|
||||||
|
.collect::<Vec<_>>()
|
||||||
|
.join(" ");
|
||||||
|
|
||||||
|
history.push(message);
|
||||||
}
|
}
|
||||||
|
|
||||||
let mut comments = Vec::new();
|
let mut comments = Vec::new();
|
||||||
@@ -128,7 +139,7 @@ mod tests {
|
|||||||
|
|
||||||
let expected = Entry {
|
let expected = Entry {
|
||||||
messages: vec!["Folksam".to_string()],
|
messages: vec!["Folksam".to_string()],
|
||||||
history: vec!["De senaste 24 timmarna har <strong>9 personer</strong> sökt efter numret 0104754350. Det kan tyda på att numret används av telefonförsäljare. Totalt har minst <strong>4786 personer</strong> sökt efter numret.".to_string()],
|
history: vec!["De senaste 24 timmarna har 9 personer sökt efter numret 0104754350. Det kan tyda på att numret används av telefonförsäljare. Totalt har minst 4786 personer sökt efter numret.".to_string()],
|
||||||
comments: vec![
|
comments: vec![
|
||||||
Comment {
|
Comment {
|
||||||
datetime: "2018-05-09T12:31:39Z".parse::<DateTime<Utc>>().unwrap(),
|
datetime: "2018-05-09T12:31:39Z".parse::<DateTime<Utc>>().unwrap(),
|
||||||
@@ -172,7 +183,7 @@ mod tests {
|
|||||||
|
|
||||||
let expected = Entry {
|
let expected = Entry {
|
||||||
messages: vec![],
|
messages: vec![],
|
||||||
history: vec![],
|
history: vec!["Du är den första de senaste 24 timmarna som söker efter detta nummer. Det tyder på att numret inte används av telefonförsäljare. Totalt har minst 301 personer sökt efter numret.".to_string()],
|
||||||
comments: vec![],
|
comments: vec![],
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -185,7 +196,7 @@ mod tests {
|
|||||||
|
|
||||||
let expected = Entry {
|
let expected = Entry {
|
||||||
messages: vec!["Alnö Design & Produktion AB".to_string()],
|
messages: vec!["Alnö Design & Produktion AB".to_string()],
|
||||||
history: vec!["De senaste 24 timmarna har <strong>3 personer</strong> sökt efter numret 0702269893. Det kan tyda på att numret används av telefonförsäljare. Totalt har minst <strong>4 personer</strong> sökt efter numret.".to_string()],
|
history: vec!["De senaste 24 timmarna har 3 personer sökt efter numret 0702269893. Det kan tyda på att numret används av telefonförsäljare. Totalt har minst 4 personer sökt efter numret.".to_string()],
|
||||||
comments: vec![
|
comments: vec![
|
||||||
Comment {
|
Comment {
|
||||||
datetime: "2019-01-18T13:30:55Z".parse::<DateTime<Utc>>().unwrap(),
|
datetime: "2019-01-18T13:30:55Z".parse::<DateTime<Utc>>().unwrap(),
|
||||||
@@ -204,7 +215,7 @@ mod tests {
|
|||||||
|
|
||||||
let expected = Entry {
|
let expected = Entry {
|
||||||
messages: vec!["Tele2".to_string()],
|
messages: vec!["Tele2".to_string()],
|
||||||
history: vec!["De senaste 24 timmarna har <strong>1 personer</strong> sökt efter numret 0726443387. Det kan tyda på att numret används av telefonförsäljare. Totalt har minst <strong>231 personer</strong> sökt efter numret.".to_string()],
|
history: vec!["De senaste 24 timmarna har 1 personer sökt efter numret 0726443387. Det kan tyda på att numret används av telefonförsäljare. Totalt har minst 231 personer sökt efter numret.".to_string()],
|
||||||
comments: vec![
|
comments: vec![
|
||||||
Comment {
|
Comment {
|
||||||
datetime: "2018-10-31T17:48:27Z".parse::<DateTime<Utc>>().unwrap(),
|
datetime: "2018-10-31T17:48:27Z".parse::<DateTime<Utc>>().unwrap(),
|
||||||
@@ -223,7 +234,7 @@ mod tests {
|
|||||||
|
|
||||||
let expected = Entry {
|
let expected = Entry {
|
||||||
messages: vec![],
|
messages: vec![],
|
||||||
history: vec![],
|
history: vec!["Du är den första de senaste 24 timmarna som söker efter detta nummer. Det tyder på att numret inte används av telefonförsäljare. Totalt har minst 38 personer sökt efter numret.".to_string()],
|
||||||
comments: vec![],
|
comments: vec![],
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -236,7 +247,7 @@ mod tests {
|
|||||||
|
|
||||||
let expected = Entry {
|
let expected = Entry {
|
||||||
messages: vec![],
|
messages: vec![],
|
||||||
history: vec![],
|
history: vec!["Du är den första de senaste 24 timmarna som söker efter detta nummer. Det tyder på att numret inte används av telefonförsäljare. Totalt har minst 25 personer sökt efter numret.".to_string()],
|
||||||
comments: vec![],
|
comments: vec![],
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -249,7 +260,7 @@ mod tests {
|
|||||||
|
|
||||||
let expected = Entry {
|
let expected = Entry {
|
||||||
messages: vec![],
|
messages: vec![],
|
||||||
history: vec![],
|
history: vec!["Du är den första de senaste 24 timmarna som söker efter detta nummer. Det tyder på att numret inte används av telefonförsäljare. Totalt har minst 22 personer sökt efter numret.".to_string()],
|
||||||
comments: vec![],
|
comments: vec![],
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -1,25 +1,36 @@
|
|||||||
|
use std::str;
|
||||||
|
|
||||||
// use log::debug;
|
// use log::debug;
|
||||||
// use scraper::{Html, Selector};
|
use scraper::{Html, Selector};
|
||||||
|
|
||||||
use crate::context::Context;
|
use crate::context::Context;
|
||||||
use crate::probe::{Entry, Probe};
|
use crate::probe::{Entry, Probe};
|
||||||
|
|
||||||
fn from_html(_document: &str) -> Result<Entry, ()> {
|
fn from_html(document: &str) -> Result<Entry, ()> {
|
||||||
/*
|
|
||||||
let html = Html::parse_document(document);
|
let html = Html::parse_document(document);
|
||||||
|
|
||||||
let messages = Vec::new();
|
let mut messages = Vec::new();
|
||||||
let history = Vec::new();
|
let history = Vec::new();
|
||||||
let comments = Vec::new();
|
let comments = Vec::new();
|
||||||
|
|
||||||
|
let selector = Selector::parse("#toporganisations li").unwrap();
|
||||||
|
|
||||||
|
for element in html.select(&selector) {
|
||||||
|
let message = element
|
||||||
|
.text()
|
||||||
|
.map(str::trim)
|
||||||
|
.filter(|s| !s.is_empty())
|
||||||
|
.collect::<Vec<_>>()
|
||||||
|
.join(" ");
|
||||||
|
|
||||||
|
messages.push(message);
|
||||||
|
}
|
||||||
|
|
||||||
Ok(Entry {
|
Ok(Entry {
|
||||||
messages,
|
messages,
|
||||||
history,
|
history,
|
||||||
comments,
|
comments,
|
||||||
})
|
})
|
||||||
*/
|
|
||||||
|
|
||||||
Err(())
|
|
||||||
}
|
}
|
||||||
|
|
||||||
pub struct VemRingde;
|
pub struct VemRingde;
|
||||||
@@ -50,40 +61,6 @@ impl Probe for VemRingde {
|
|||||||
}
|
}
|
||||||
Err(_) => Err(()),
|
Err(_) => Err(()),
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
if let Ok(page) = Page::from_html(&body) {
|
|
||||||
if !page.owners.is_empty() {
|
|
||||||
println!(" ägare:");
|
|
||||||
|
|
||||||
for owner in &page.owners {
|
|
||||||
println!(" * {} - {}", owner.title, owner.calls);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if !page.calls.is_empty() {
|
|
||||||
if !page.owners.is_empty() {
|
|
||||||
println!();
|
|
||||||
}
|
|
||||||
|
|
||||||
println!(" samtal:");
|
|
||||||
|
|
||||||
for call in &page.calls {
|
|
||||||
println!(" * {}: {}", call.date, call.who);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if page.owners.is_empty() && page.calls.is_empty() {
|
|
||||||
println!(" Inga samtal från {}", number);
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
if let Err(error) = Page::from_html(&body) {
|
|
||||||
debug!("vemringde: failed to parse page: {:#?}", error);
|
|
||||||
}
|
|
||||||
|
|
||||||
println!(" Failed to find any data");
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -98,7 +75,7 @@ mod tests {
|
|||||||
let document = include_str!("../../fixtures/vemringde/0104754350.html");
|
let document = include_str!("../../fixtures/vemringde/0104754350.html");
|
||||||
|
|
||||||
let expected = Entry {
|
let expected = Entry {
|
||||||
messages: vec![],
|
messages: vec!["Folksam (5 samtal)".to_string()],
|
||||||
history: vec![],
|
history: vec![],
|
||||||
comments: vec![],
|
comments: vec![],
|
||||||
};
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user