Added test, but broke stuff.

This commit is contained in:
2019-01-21 15:41:53 +01:00
parent 1f63bcf85f
commit 94fa03d45c
13 changed files with 1336 additions and 238 deletions

View File

@@ -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));
}
}