use chrono::{TimeZone, Utc}; use log::debug; use regex::Regex; use serde::Deserialize; use crate::context::Context; use crate::probe::{self, Entry, Probe}; #[derive(Debug, Deserialize)] #[serde(rename_all = "camelCase")] struct Data { props: Props, } #[derive(Debug, Deserialize)] #[serde(rename_all = "camelCase")] struct Props { page_props: PageProps, } #[derive(Debug, Deserialize)] #[serde(rename_all = "camelCase")] struct PageProps { status_code: Option, phone_data: Option, } #[derive(Debug, Deserialize)] #[serde(rename_all = "camelCase")] struct PhoneData { alternative_formats: Vec, clean_number: String, #[serde(default)] comments: Vec, statistics_text: String, } #[derive(Debug, Deserialize)] #[serde(rename_all = "camelCase")] struct Comment { comment: String, timestamp: u64, } fn from_html(document: &str) -> Result { let re = Regex::new(r#"