From 0922066baa6b259de8876c12b8b2d92ba98cd6cd Mon Sep 17 00:00:00 2001 From: grimhilt Date: Thu, 13 Jul 2023 16:02:04 +0200 Subject: [PATCH] add contentlength in reqprops --- src/services/req_props.rs | 25 ++++++++++++++++++++----- 1 file changed, 20 insertions(+), 5 deletions(-) diff --git a/src/services/req_props.rs b/src/services/req_props.rs index 86f3427..10abf11 100644 --- a/src/services/req_props.rs +++ b/src/services/req_props.rs @@ -1,4 +1,5 @@ use std::io::Cursor; +use futures_util::StreamExt; use chrono::{Utc, DateTime}; use reqwest::{Method, Response, Error}; use xml::reader::{EventReader, XmlEvent}; @@ -12,6 +13,7 @@ pub struct ObjProps { pub href: Option, pub relative_s: Option, pub lastmodified: Option>, + pub contentlength: Option, } impl Clone for ObjProps { @@ -20,6 +22,7 @@ impl Clone for ObjProps { href: self.href.clone(), relative_s: self.relative_s.clone(), lastmodified: self.lastmodified.clone(), + contentlength: self.contentlength.clone(), } } } @@ -30,6 +33,7 @@ impl ObjProps { href: None, relative_s: None, lastmodified: None, + contentlength: None, } } } @@ -73,7 +77,7 @@ impl ReqProps { self } - pub fn _getcontentlenght(&mut self) -> &mut ReqProps { + pub fn getcontentlength(&mut self) -> &mut ReqProps { self.xml_balises.push(String::from("getcontentlength")); self.xml_payload.push_str(r#""#); self @@ -157,6 +161,7 @@ impl ReqProps { } fn parse(&self, xml: String, multiple: bool) -> Vec { + dbg!(xml.clone()); let cursor = Cursor::new(xml); let parser = EventReader::new(cursor); @@ -170,6 +175,7 @@ impl ReqProps { for event in parser { match event { Ok(XmlEvent::StartElement { name, .. }) => { + dbg!(name.clone().local_name); if let Some(v) = val.clone() { should_get = &name.local_name == v; } else { @@ -193,21 +199,30 @@ impl ReqProps { match val.unwrap().as_str() { "href" => { content.href = Some(text.clone()); - content.relative_s = Some(get_relative_s(text, &(self.api_props.clone().unwrap()))); + content.relative_s = Some( + get_relative_s(text, &(self.api_props + .clone() + .unwrap()))); }, "getlastmodified" => { - content.lastmodified = Some(parse_timestamp(&text).unwrap()); + content.lastmodified = Some( + parse_timestamp(&text).unwrap()); + }, + "getcontentlength" => { + content.contentlength = Some( + text.clone().parse().unwrap()); }, _ => (), } val = iter.next() } } - Ok(XmlEvent::EndElement { .. }) => { + Ok(XmlEvent::EndElement { name, .. }) => { + dbg!(name.clone().local_name); should_get = false; } Err(e) => { - eprintln!("Error: {}", e); + eprintln!("err: parsing xml: {}", e); break; } _ => {}