mirror of https://github.com/terhechte/postsack
Add support for AppleMail
parent
6bdc412833
commit
471517047a
@ -1,35 +1,14 @@
|
|||||||
use eyre::Result;
|
use eyre::Result;
|
||||||
use rayon::prelude::*;
|
|
||||||
use tracing::trace;
|
|
||||||
|
|
||||||
use super::super::shared::filesystem::folders_in;
|
use super::super::shared::filesystem::{emails_in, folders_in};
|
||||||
use super::super::{Message, MessageSender};
|
use super::super::MessageSender;
|
||||||
use super::raw_email::RawEmailEntry;
|
use super::raw_email::RawEmailEntry;
|
||||||
use crate::types::Config;
|
use crate::types::Config;
|
||||||
|
|
||||||
use std::path::Path;
|
|
||||||
|
|
||||||
pub fn read_emails(config: &Config, sender: MessageSender) -> Result<Vec<RawEmailEntry>> {
|
pub fn read_emails(config: &Config, sender: MessageSender) -> Result<Vec<RawEmailEntry>> {
|
||||||
Ok(folders_in(&config.emails_folder_path, sender, read_folder)?)
|
Ok(folders_in(
|
||||||
}
|
&config.emails_folder_path,
|
||||||
|
sender,
|
||||||
fn read_folder(path: &Path, sender: MessageSender) -> Result<Vec<RawEmailEntry>> {
|
|path, sender| emails_in(path, sender, RawEmailEntry::new),
|
||||||
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
|
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue