diff --git a/Cargo.lock b/Cargo.lock index 5383106..63d159f 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -509,9 +509,9 @@ dependencies = [ [[package]] name = "mail-parser" -version = "0.7.0" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f9c5c7e7ee68a597425d5e4134dfa0dbbc1f86cc047c9a8c1dde1bf34fafe461" +checksum = "80f330933d5287bcc21be7286850b353f22e7d66fa35d1c545ab030fd934b386" dependencies = [ "encoding_rs", ] diff --git a/Cargo.toml b/Cargo.toml index 3393a4a..deddca2 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -16,6 +16,6 @@ base16ct = { version = "^0.1.0", features = [ "alloc" ] } chrono = "^0.4" clap = { version = "^4.0.22", features = [ "derive" ] } imap = { version = "^2.4.1", default-features = false } -mail-parser = "^0.7.0" +mail-parser = "^0.8.0" rustls-connector = { version = "^0.16.1", default-features = false, features = [ "webpki-roots-certs", "quic" ] } sha2 = "^0.10.2" diff --git a/src/feed.rs b/src/feed.rs index 9a32141..cd25697 100644 --- a/src/feed.rs +++ b/src/feed.rs @@ -15,8 +15,8 @@ pub(crate) fn add_entry_to_feed( include_html: bool, ) { let parsed = message.get_parsed().unwrap(); - let date = parsed.get_date().expect("Could not extract date"); - let from = match parsed.get_from() { + let date = parsed.date().expect("Could not extract date"); + let from = match parsed.from() { HeaderValue::Address(e) => e, _ => return, }; @@ -41,7 +41,7 @@ pub(crate) fn add_entry_to_feed( uri: None, }, title: parsed - .get_subject() + .subject() .expect("Expected a subject") .to_string(), content: Some(processed_html.clone()), @@ -64,13 +64,13 @@ pub(crate) fn build_atom_feed(hostname: &String) -> Feed { .link( LinkBuilder::default() .href(format!("https://{}/", hostname)) - .rel("alternate") + .rel("alternate".to_string()) .build(), ) .link( LinkBuilder::default() .href(format!("https://{}/feed.atom", hostname)) - .rel("self") + .rel("self".to_string()) .build(), ) .generator(Generator { @@ -112,7 +112,7 @@ impl From for Entry { eb.link( LinkBuilder::default() .href(post.url) - .rel("alternate") + .rel("alternate".to_string()) .build(), ); } diff --git a/src/main.rs b/src/main.rs index fa66cbf..26531bd 100644 --- a/src/main.rs +++ b/src/main.rs @@ -13,7 +13,7 @@ use message_reader::{DataDirectoryMessageReader, EmailReader, ImapReader}; use sha2::{Digest, Sha256}; use std::{ error::Error, - fs::{File, OpenOptions}, + fs::OpenOptions, io::Write, path::{Path, PathBuf}, }; @@ -77,12 +77,12 @@ fn build_feed(filename: &PathBuf, hostname: String, include_html: bool) -> Resul for msg in reader.read_rfc822_messages() { let parsed = msg.get_parsed().expect("A parsed messsage."); - let date = parsed.get_date().ok_or(format!( + let date = parsed.date().ok_or(format!( "Could not get the date of message {}", msg.get_uid() ))?; - let subject = match parsed.get_subject() { + let subject = match parsed.subject() { Some(subject) => subject, None => "No subject", }; @@ -94,7 +94,7 @@ fn build_feed(filename: &PathBuf, hostname: String, include_html: bool) -> Resul subject ); - let html_body = parsed.get_html_body(0).expect("Could not read html body"); + let html_body = parsed.body_html(0).expect("Could not read html body"); let processed_html = process_html(&html_body).expect("Could not process the HTML"); if include_html { @@ -149,12 +149,12 @@ fn fetch_from_imap( msg.get_uid() ))?; - let date = parsed.get_date().ok_or(format!( + let date = parsed.date().ok_or(format!( "Could not get the date of message {}", msg.get_uid() ))?; - let subject = match parsed.get_subject() { + let subject = match parsed.subject() { Some(subject) => subject, None => "No subject", }; @@ -185,14 +185,14 @@ fn fetch_from_imap( fn get_path(parsed: &ParsedMessage, msg: &Message) -> String { - let date = parsed.get_date().expect("Could not extract date"); + let date = parsed.date().expect("Could not extract date"); let date_str = format!( "{:04}{:02}{:02}{:02}{:02}{:02}", &date.year, &date.month, &date.day, &date.hour, &date.minute, &date.second ); let hash = base16ct::lower::encode_string(&Sha256::digest( - &parsed.get_html_body(0).expect("Expected a body").as_bytes(), + &parsed.body_html(0).expect("Expected a body").as_bytes(), )); let uid: i32 = msg.get_uid()