hammond-data::utils: Small and minor refactor.
This commit is contained in:
parent
e727734443
commit
785a5f80c6
@ -74,7 +74,7 @@ impl Feed {
|
|||||||
fn parse_channel_items(&self, pd: &Podcast) -> Vec<NewEpisode> {
|
fn parse_channel_items(&self, pd: &Podcast) -> Vec<NewEpisode> {
|
||||||
let items = self.channel.items();
|
let items = self.channel.items();
|
||||||
let new_episodes: Vec<_> = items
|
let new_episodes: Vec<_> = items
|
||||||
.into_par_iter()
|
.par_iter()
|
||||||
.filter_map(|item| parser::new_episode(item, *pd.id()).ok())
|
.filter_map(|item| parser::new_episode(item, *pd.id()).ok())
|
||||||
.collect();
|
.collect();
|
||||||
|
|
||||||
|
|||||||
@ -18,43 +18,38 @@ fn download_checker() -> Result<()> {
|
|||||||
|
|
||||||
episodes
|
episodes
|
||||||
.into_par_iter()
|
.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(())
|
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<()> {
|
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;
|
let now_utc = Utc::now().timestamp() as i32;
|
||||||
episodes.into_par_iter().for_each(|mut ep| {
|
episodes
|
||||||
if ep.local_uri().is_some() && ep.played().is_some() {
|
.par_iter_mut()
|
||||||
let played = ep.played().unwrap();
|
.filter(|ep| ep.local_uri().is_some() && ep.played().is_some())
|
||||||
|
.for_each(|ep| {
|
||||||
// TODO: expose a config and a user set option.
|
// TODO: expose a config and a user set option.
|
||||||
// Chnage the test too when exposed
|
// 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 {
|
if now_utc > limit {
|
||||||
let e = delete_local_content(&mut ep);
|
if let Err(err) = delete_local_content(ep) {
|
||||||
if let Err(err) = e {
|
|
||||||
error!("Error while trying to delete file: {:?}", ep.local_uri());
|
error!("Error while trying to delete file: {:?}", ep.local_uri());
|
||||||
error!("Error: {}", err);
|
error!("Error: {}", err);
|
||||||
} else {
|
} else {
|
||||||
info!("Episode {:?} was deleted succesfully.", ep.local_uri());
|
info!("Episode {:?} was deleted succesfully.", ep.local_uri());
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
}
|
});
|
||||||
});
|
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -186,20 +181,14 @@ mod tests {
|
|||||||
Some(valid_path.to_str().unwrap()),
|
Some(valid_path.to_str().unwrap()),
|
||||||
episodes.first().unwrap().local_uri()
|
episodes.first().unwrap().local_uri()
|
||||||
);
|
);
|
||||||
}
|
|
||||||
|
|
||||||
#[test]
|
|
||||||
fn test_checker_helper() {
|
|
||||||
let _tmp_dir = helper_db();
|
let _tmp_dir = helper_db();
|
||||||
let mut episode = {
|
download_checker().unwrap();
|
||||||
|
let episode = {
|
||||||
let db = connection();
|
let db = connection();
|
||||||
let con = db.get().unwrap();
|
let con = db.get().unwrap();
|
||||||
dbqueries::get_episode_from_pk(&con, "bar_baz", 1)
|
dbqueries::get_episode_from_pk(&con, "bar_baz", 1).unwrap()
|
||||||
.unwrap()
|
|
||||||
.into()
|
|
||||||
};
|
};
|
||||||
|
|
||||||
checker_helper(&mut episode);
|
|
||||||
assert!(episode.local_uri().is_none());
|
assert!(episode.local_uri().is_none());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user