More tests, collect more data, and refactor some code.
This commit is contained in:
+73
-38
@@ -1,9 +1,10 @@
|
||||
use chrono::{TimeZone, Utc};
|
||||
use log::debug;
|
||||
use log::{debug, trace};
|
||||
use regex::Regex;
|
||||
use serde::Deserialize;
|
||||
|
||||
use crate::probe::{self, Entry, Probe};
|
||||
use crate::entry::{self, Date, Entry};
|
||||
use crate::probe::Probe;
|
||||
|
||||
#[derive(Debug, Deserialize)]
|
||||
#[serde(rename_all = "camelCase")]
|
||||
@@ -50,12 +51,10 @@ fn from_html(document: &str) -> Result<Entry, ()> {
|
||||
|
||||
let json = result.get(1).unwrap().as_str();
|
||||
|
||||
/*
|
||||
println!(
|
||||
"json: {:#?}",
|
||||
trace!(
|
||||
"Hitta: {:#?}",
|
||||
serde_json::from_str::<serde_json::Value>(&json)
|
||||
);
|
||||
*/
|
||||
|
||||
if let Ok(data) = serde_json::from_str::<Data>(&json) {
|
||||
let messages = Vec::new();
|
||||
@@ -66,11 +65,11 @@ fn from_html(document: &str) -> Result<Entry, ()> {
|
||||
history.push(phone_data.statistics_text);
|
||||
|
||||
for comment in phone_data.comments {
|
||||
comments.push(probe::Comment {
|
||||
datetime: Utc.timestamp(
|
||||
comments.push(entry::Comment {
|
||||
datetime: Date::DateTime(Utc.timestamp(
|
||||
(comment.timestamp / 1000) as i64,
|
||||
(comment.timestamp % 1000) as u32,
|
||||
),
|
||||
)),
|
||||
title: None,
|
||||
message: comment.comment,
|
||||
});
|
||||
@@ -131,91 +130,120 @@ mod tests {
|
||||
history:
|
||||
- 42 andra har rapporterat detta nummer
|
||||
comments:
|
||||
- datetime: "2019-01-17T17:29:22Z"
|
||||
- datetime:
|
||||
DateTime: "2019-01-17T17:29:22Z"
|
||||
title: ~
|
||||
message: Varmsälj från Folksam
|
||||
- datetime: "2018-12-14T13:45:28Z"
|
||||
- datetime:
|
||||
DateTime: "2018-12-14T13:45:28Z"
|
||||
title: ~
|
||||
message: Folksam
|
||||
- datetime: "2018-11-28T07:30:18Z"
|
||||
- datetime:
|
||||
DateTime: "2018-11-28T07:30:18Z"
|
||||
title: ~
|
||||
message: Höglandschskt
|
||||
- datetime: "2018-11-20T19:18:09Z"
|
||||
- datetime:
|
||||
DateTime: "2018-11-20T19:18:09Z"
|
||||
title: ~
|
||||
message: "Försäljare "
|
||||
- datetime: "2018-11-19T17:38:34Z"
|
||||
- datetime:
|
||||
DateTime: "2018-11-19T17:38:34Z"
|
||||
title: ~
|
||||
message: mögg från Folksam
|
||||
- datetime: "2018-11-12T16:00:41Z"
|
||||
- datetime:
|
||||
DateTime: "2018-11-12T16:00:41Z"
|
||||
title: ~
|
||||
message: Folksam försäkringsförsäljare
|
||||
- datetime: "2018-10-25T10:28:36Z"
|
||||
- datetime:
|
||||
DateTime: "2018-10-25T10:28:36Z"
|
||||
title: ~
|
||||
message: folksam
|
||||
- datetime: "2018-10-10T07:30:40Z"
|
||||
- datetime:
|
||||
DateTime: "2018-10-10T07:30:40Z"
|
||||
title: ~
|
||||
message: Telefonförsäljare
|
||||
- datetime: "2018-10-04T10:04:55Z"
|
||||
- datetime:
|
||||
DateTime: "2018-10-04T10:04:55Z"
|
||||
title: ~
|
||||
message: Folksam säljare
|
||||
- datetime: "2018-10-03T13:55:19Z"
|
||||
- datetime:
|
||||
DateTime: "2018-10-03T13:55:19Z"
|
||||
title: ~
|
||||
message: Sa inget.
|
||||
- datetime: "2018-08-24T16:56:46Z"
|
||||
- datetime:
|
||||
DateTime: "2018-08-24T16:56:46Z"
|
||||
title: ~
|
||||
message: Folksam
|
||||
- datetime: "2018-08-24T09:42:43Z"
|
||||
- datetime:
|
||||
DateTime: "2018-08-24T09:42:43Z"
|
||||
title: ~
|
||||
message: Achmati azmut från folksam
|
||||
- datetime: "2018-08-21T18:29:29Z"
|
||||
- datetime:
|
||||
DateTime: "2018-08-21T18:29:29Z"
|
||||
title: ~
|
||||
message: Folksam
|
||||
- datetime: "2018-08-16T18:56:56Z"
|
||||
- datetime:
|
||||
DateTime: "2018-08-16T18:56:56Z"
|
||||
title: ~
|
||||
message: Säljare från Folksam.
|
||||
- datetime: "2018-08-16T14:48:59Z"
|
||||
- datetime:
|
||||
DateTime: "2018-08-16T14:48:59Z"
|
||||
title: ~
|
||||
message: "Folksam "
|
||||
- datetime: "2018-08-09T16:30:28Z"
|
||||
- datetime:
|
||||
DateTime: "2018-08-09T16:30:28Z"
|
||||
title: ~
|
||||
message: Folksam
|
||||
- datetime: "2018-08-02T16:29:32Z"
|
||||
- datetime:
|
||||
DateTime: "2018-08-02T16:29:32Z"
|
||||
title: ~
|
||||
message: "Folksam "
|
||||
- datetime: "2018-08-02T15:33:38Z"
|
||||
- datetime:
|
||||
DateTime: "2018-08-02T15:33:38Z"
|
||||
title: ~
|
||||
message: "Folksam "
|
||||
- datetime: "2018-07-25T08:28:27Z"
|
||||
- datetime:
|
||||
DateTime: "2018-07-25T08:28:27Z"
|
||||
title: ~
|
||||
message: Säljare Folksam
|
||||
- datetime: "2018-07-17T21:20:51Z"
|
||||
- datetime:
|
||||
DateTime: "2018-07-17T21:20:51Z"
|
||||
title: ~
|
||||
message: "Inga Hansson "
|
||||
- datetime: "2018-07-16T18:11:46Z"
|
||||
- datetime:
|
||||
DateTime: "2018-07-16T18:11:46Z"
|
||||
title: ~
|
||||
message: Folksam
|
||||
- datetime: "2018-07-06T15:45:46Z"
|
||||
- datetime:
|
||||
DateTime: "2018-07-06T15:45:46Z"
|
||||
title: ~
|
||||
message: "Folksam "
|
||||
- datetime: "2018-07-05T17:24:07Z"
|
||||
- datetime:
|
||||
DateTime: "2018-07-05T17:24:07Z"
|
||||
title: ~
|
||||
message: folksam
|
||||
- datetime: "2018-07-05T11:15:02Z"
|
||||
- datetime:
|
||||
DateTime: "2018-07-05T11:15:02Z"
|
||||
title: ~
|
||||
message: Vesran
|
||||
- datetime: "2018-07-04T13:30:49Z"
|
||||
- datetime:
|
||||
DateTime: "2018-07-04T13:30:49Z"
|
||||
title: ~
|
||||
message: Folksam
|
||||
- datetime: "2018-06-29T10:52:51Z"
|
||||
- datetime:
|
||||
DateTime: "2018-06-29T10:52:51Z"
|
||||
title: ~
|
||||
message: folksam
|
||||
- datetime: "2018-06-28T13:33:01Z"
|
||||
- datetime:
|
||||
DateTime: "2018-06-28T13:33:01Z"
|
||||
title: ~
|
||||
message: Säljare folksam
|
||||
- datetime: "2018-06-28T07:42:42Z"
|
||||
- datetime:
|
||||
DateTime: "2018-06-28T07:42:42Z"
|
||||
title: ~
|
||||
message: Folksam försäkringar
|
||||
- datetime: "2018-06-26T12:59:33Z"
|
||||
- datetime:
|
||||
DateTime: "2018-06-26T12:59:33Z"
|
||||
title: ~
|
||||
message: Säljare Folksam"###);
|
||||
}
|
||||
@@ -288,4 +316,11 @@ mod tests {
|
||||
|
||||
assert_yaml_snapshot_matches!(from_html(&document), @"Err: ~");
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_0546780862() {
|
||||
let document = include_str!("../../fixtures/hitta/0546780862.html");
|
||||
|
||||
assert_yaml_snapshot_matches!(from_html(&document), @"Err: ~");
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user