hammond-data::utils: Small and minor refactor.

This commit is contained in:
Jordan Petridis 2017-12-31 01:42:28 +02:00
parent e727734443
commit 785a5f80c6
No known key found for this signature in database
GPG Key ID: CEABAD9F5683B9A6
2 changed files with 20 additions and 31 deletions

View File

@ -74,7 +74,7 @@ impl Feed {
fn parse_channel_items(&self, pd: &Podcast) -> Vec<NewEpisode> {
let items = self.channel.items();
let new_episodes: Vec<_> = items
.into_par_iter()
.par_iter()
.filter_map(|item| parser::new_episode(item, *pd.id()).ok())
.collect();

View File

@ -18,43 +18,38 @@ fn download_checker() -> Result<()> {
episodes
.into_par_iter()
.for_each(|mut ep| checker_helper(&mut ep));
.filter(|ep| !Path::new(ep.local_uri().unwrap()).exists())
.for_each(|mut ep| {
ep.set_local_uri(None);
if let Err(err) = ep.save() {
error!("Error while trying to update episode: {:#?}", ep);
error!("Error: {}", err);
};
});
Ok(())
}
fn checker_helper(ep: &mut EpisodeCleanerQuery) {
if !Path::new(ep.local_uri().unwrap()).exists() {
ep.set_local_uri(None);
let res = ep.save();
if let Err(err) = res {
error!("Error while trying to update episode: {:#?}", ep);
error!("Error: {}", err);
};
}
}
fn played_cleaner() -> Result<()> {
let episodes = dbqueries::get_played_cleaner_episodes()?;
let mut episodes = dbqueries::get_played_cleaner_episodes()?;
let now_utc = Utc::now().timestamp() as i32;
episodes.into_par_iter().for_each(|mut ep| {
if ep.local_uri().is_some() && ep.played().is_some() {
let played = ep.played().unwrap();
episodes
.par_iter_mut()
.filter(|ep| ep.local_uri().is_some() && ep.played().is_some())
.for_each(|ep| {
// TODO: expose a config and a user set option.
// Chnage the test too when exposed
let limit = played + 172_800; // add 2days in seconds
let limit = ep.played().unwrap() + 172_800; // add 2days in seconds
if now_utc > limit {
let e = delete_local_content(&mut ep);
if let Err(err) = e {
if let Err(err) = delete_local_content(ep) {
error!("Error while trying to delete file: {:?}", ep.local_uri());
error!("Error: {}", err);
} else {
info!("Episode {:?} was deleted succesfully.", ep.local_uri());
};
}
}
});
});
Ok(())
}
@ -186,20 +181,14 @@ mod tests {
Some(valid_path.to_str().unwrap()),
episodes.first().unwrap().local_uri()
);
}
#[test]
fn test_checker_helper() {
let _tmp_dir = helper_db();
let mut episode = {
download_checker().unwrap();
let episode = {
let db = connection();
let con = db.get().unwrap();
dbqueries::get_episode_from_pk(&con, "bar_baz", 1)
.unwrap()
.into()
dbqueries::get_episode_from_pk(&con, "bar_baz", 1).unwrap()
};
checker_helper(&mut episode);
assert!(episode.local_uri().is_none());
}