mirror of https://github.com/terhechte/postsack
Add support for AppleMail
parent
6bdc412833
commit
471517047a
@ -1,35 +1,14 @@
|
||||
use eyre::Result;
|
||||
use rayon::prelude::*;
|
||||
use tracing::trace;
|
||||
|
||||
use super::super::shared::filesystem::folders_in;
|
||||
use super::super::{Message, MessageSender};
|
||||
use super::super::shared::filesystem::{emails_in, folders_in};
|
||||
use super::super::MessageSender;
|
||||
use super::raw_email::RawEmailEntry;
|
||||
use crate::types::Config;
|
||||
|
||||
use std::path::Path;
|
||||
|
||||
pub fn read_emails(config: &Config, sender: MessageSender) -> Result<Vec<RawEmailEntry>> {
|
||||
Ok(folders_in(&config.emails_folder_path, sender, read_folder)?)
|
||||
}
|
||||
|
||||
fn read_folder(path: &Path, sender: MessageSender) -> Result<Vec<RawEmailEntry>> {
|
||||
let result = Ok(std::fs::read_dir(path)?
|
||||
.into_iter()
|
||||
.par_bridge()
|
||||
.filter_map(|entry| {
|
||||
let path = entry
|
||||
.map_err(|e| tracing::error!("{} {:?}", &path.display(), &e))
|
||||
.ok()?
|
||||
.path();
|
||||
if path.is_dir() {
|
||||
return None;
|
||||
}
|
||||
trace!("Reading {}", &path.display());
|
||||
RawEmailEntry::new(path)
|
||||
})
|
||||
.collect());
|
||||
// We're done reading the folder
|
||||
sender.send(Message::ReadOne).unwrap();
|
||||
result
|
||||
Ok(folders_in(
|
||||
&config.emails_folder_path,
|
||||
sender,
|
||||
|path, sender| emails_in(path, sender, RawEmailEntry::new),
|
||||
)?)
|
||||
}
|
||||
|
Loading…
Reference in New Issue