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();
|
||||
|
||||
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();
|
||||
|
||||
history.push(message);
|
||||
@@ -94,10 +100,7 @@ mod tests {
|
||||
|
||||
let expected = Entry {
|
||||
messages: vec![],
|
||||
history: vec![
|
||||
"<strong>3464</strong> denna vecka och <strong>6637</strong> totalt.<!-- --> "
|
||||
.to_string(),
|
||||
],
|
||||
history: vec!["3464 denna vecka och 6637 totalt.".to_string()],
|
||||
comments: vec![],
|
||||
};
|
||||
|
||||
@@ -123,10 +126,7 @@ mod tests {
|
||||
|
||||
let expected = Entry {
|
||||
messages: vec![],
|
||||
history: vec![
|
||||
"<strong>16</strong> denna vecka och <strong>98</strong> totalt.<!-- --> "
|
||||
.to_string(),
|
||||
],
|
||||
history: vec!["16 denna vecka och 98 totalt.".to_string()],
|
||||
comments: vec![],
|
||||
};
|
||||
|
||||
@@ -139,10 +139,7 @@ mod tests {
|
||||
|
||||
let expected = Entry {
|
||||
messages: vec![],
|
||||
history: vec![
|
||||
"<strong>20</strong> denna vecka och <strong>602</strong> totalt.<!-- --> "
|
||||
.to_string(),
|
||||
],
|
||||
history: vec!["20 denna vecka och 602 totalt.".to_string()],
|
||||
comments: vec![],
|
||||
};
|
||||
|
||||
@@ -155,10 +152,7 @@ mod tests {
|
||||
|
||||
let expected = Entry {
|
||||
messages: vec![],
|
||||
history: vec![
|
||||
"<strong>29</strong> denna vecka och <strong>900</strong> totalt.<!-- --> "
|
||||
.to_string(),
|
||||
],
|
||||
history: vec!["29 denna vecka och 900 totalt.".to_string()],
|
||||
comments: vec![],
|
||||
};
|
||||
|
||||
@@ -171,10 +165,7 @@ mod tests {
|
||||
|
||||
let expected = Entry {
|
||||
messages: vec![],
|
||||
history: vec![
|
||||
"<strong>303</strong> denna vecka och <strong>304</strong> totalt.<!-- --> "
|
||||
.to_string(),
|
||||
],
|
||||
history: vec!["303 denna vecka och 304 totalt.".to_string()],
|
||||
comments: vec![],
|
||||
};
|
||||
|
||||
|
||||
@@ -33,10 +33,21 @@ fn from_html(document: &str) -> Result<Entry, ()> {
|
||||
|
||||
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() {
|
||||
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();
|
||||
@@ -128,7 +139,7 @@ mod tests {
|
||||
|
||||
let expected = Entry {
|
||||
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![
|
||||
Comment {
|
||||
datetime: "2018-05-09T12:31:39Z".parse::<DateTime<Utc>>().unwrap(),
|
||||
@@ -172,7 +183,7 @@ mod tests {
|
||||
|
||||
let expected = Entry {
|
||||
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![],
|
||||
};
|
||||
|
||||
@@ -185,7 +196,7 @@ mod tests {
|
||||
|
||||
let expected = Entry {
|
||||
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![
|
||||
Comment {
|
||||
datetime: "2019-01-18T13:30:55Z".parse::<DateTime<Utc>>().unwrap(),
|
||||
@@ -204,7 +215,7 @@ mod tests {
|
||||
|
||||
let expected = Entry {
|
||||
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![
|
||||
Comment {
|
||||
datetime: "2018-10-31T17:48:27Z".parse::<DateTime<Utc>>().unwrap(),
|
||||
@@ -223,7 +234,7 @@ mod tests {
|
||||
|
||||
let expected = Entry {
|
||||
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![],
|
||||
};
|
||||
|
||||
@@ -236,7 +247,7 @@ mod tests {
|
||||
|
||||
let expected = Entry {
|
||||
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![],
|
||||
};
|
||||
|
||||
@@ -249,7 +260,7 @@ mod tests {
|
||||
|
||||
let expected = Entry {
|
||||
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![],
|
||||
};
|
||||
|
||||
|
||||
@@ -1,25 +1,36 @@
|
||||
use std::str;
|
||||
|
||||
// use log::debug;
|
||||
// use scraper::{Html, Selector};
|
||||
use scraper::{Html, Selector};
|
||||
|
||||
use crate::context::Context;
|
||||
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 messages = Vec::new();
|
||||
let mut messages = Vec::new();
|
||||
let history = 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 {
|
||||
messages,
|
||||
history,
|
||||
comments,
|
||||
})
|
||||
*/
|
||||
|
||||
Err(())
|
||||
}
|
||||
|
||||
pub struct VemRingde;
|
||||
@@ -50,40 +61,6 @@ impl Probe for VemRingde {
|
||||
}
|
||||
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 expected = Entry {
|
||||
messages: vec![],
|
||||
messages: vec!["Folksam (5 samtal)".to_string()],
|
||||
history: vec![],
|
||||
comments: vec![],
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user