Added test, but broke stuff.
This commit is contained in:
@@ -1,36 +1,21 @@
|
||||
use log::debug;
|
||||
use unhtml::{self, FromHtml, VecFromHtml};
|
||||
use unhtml_derive::FromHtml;
|
||||
use scraper::{Html, Selector};
|
||||
|
||||
use crate::context::Context;
|
||||
use crate::probe::Probe;
|
||||
use crate::probe::{Comment, Entry, Probe};
|
||||
|
||||
#[derive(Debug, FromHtml)]
|
||||
#[html(selector = "#content")]
|
||||
struct Page {
|
||||
#[html(selector = "#toporganisations > li")]
|
||||
owners: Vec<Owner>,
|
||||
fn from_html(document: &str) -> Result<Entry, ()> {
|
||||
let _html = Html::parse_document(document);
|
||||
|
||||
#[html(selector = "#calls > ol.table > li")]
|
||||
calls: Vec<Call>,
|
||||
}
|
||||
let messages = Vec::new();
|
||||
let history = Vec::new();
|
||||
let comments = Vec::new();
|
||||
|
||||
#[derive(Debug, FromHtml)]
|
||||
struct Owner {
|
||||
#[html(selector = "a", attr = "inner")]
|
||||
title: String,
|
||||
|
||||
#[html(selector = "span", attr = "inner")]
|
||||
calls: String,
|
||||
}
|
||||
|
||||
#[derive(Debug, FromHtml)]
|
||||
struct Call {
|
||||
#[html(selector = ".w40", attr = "inner")]
|
||||
who: String,
|
||||
|
||||
#[html(selector = ".w15", attr = "inner")]
|
||||
date: String,
|
||||
Ok(Entry {
|
||||
messages,
|
||||
history,
|
||||
comments,
|
||||
})
|
||||
}
|
||||
|
||||
pub struct VemRingde;
|
||||
@@ -52,8 +37,17 @@ impl Probe for VemRingde {
|
||||
body
|
||||
};
|
||||
|
||||
println!("vemringde.se:");
|
||||
match from_html(&body) {
|
||||
Ok(entry) => {
|
||||
println!("vemringde.se:");
|
||||
print!("{}", entry);
|
||||
|
||||
Ok(())
|
||||
}
|
||||
Err(_) => Err(()),
|
||||
}
|
||||
|
||||
/*
|
||||
if let Ok(page) = Page::from_html(&body) {
|
||||
if !page.owners.is_empty() {
|
||||
println!(" ägare:");
|
||||
@@ -85,7 +79,24 @@ impl Probe for VemRingde {
|
||||
|
||||
println!(" Failed to find any data");
|
||||
}
|
||||
|
||||
Err(())
|
||||
*/
|
||||
}
|
||||
}
|
||||
|
||||
#[cfg(test)]
|
||||
mod tests {
|
||||
use super::*;
|
||||
|
||||
#[test]
|
||||
fn test_0702269893() {
|
||||
let document = include_str!("../../fixtures/vemringde/0702269893.html");
|
||||
|
||||
let expected = Entry {
|
||||
messages: vec![],
|
||||
history: vec![],
|
||||
comments: vec![],
|
||||
};
|
||||
|
||||
assert_eq!(from_html(&document), Ok(expected));
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user