Removed some unwrap()s.

This commit is contained in:
Jordan Petridis 2018-01-09 09:21:07 +02:00
parent 87a259e1a4
commit ea70addbc6
No known key found for this signature in database
GPG Key ID: CEABAD9F5683B9A6
4 changed files with 38 additions and 32 deletions

View File

@ -613,7 +613,6 @@ impl<'a> Source {
fn update_etag(&mut self, req: &reqwest::Response) -> Result<()> { fn update_etag(&mut self, req: &reqwest::Response) -> Result<()> {
let headers = req.headers(); let headers = req.headers();
// let etag = headers.get_raw("ETag").unwrap();
let etag = headers.get::<ETag>(); let etag = headers.get::<ETag>();
let lmod = headers.get::<LastModified>(); let lmod = headers.get::<LastModified>();

View File

@ -68,29 +68,33 @@ pub fn add(id: i32, directory: &str, sender: Sender<Action>) {
let prog = Arc::new(Mutex::new(Progress::default())); let prog = Arc::new(Mutex::new(Progress::default()));
{ {
let mut m = ACTIVE_DOWNLOADS.write().unwrap(); ACTIVE_DOWNLOADS
m.insert(id, prog.clone()); .write()
} .ok()
{ .map(|mut m| m.insert(id, prog.clone()));
let m = ACTIVE_DOWNLOADS.read().unwrap();
info!("ACTIVE DOWNLOADS: {:#?}", m);
} }
// {
// let m = ACTIVE_DOWNLOADS.read().unwrap();
// info!("ACTIVE DOWNLOADS: {:#?}", m);
// }
let dir = directory.to_owned(); let dir = directory.to_owned();
thread::spawn(move || { thread::spawn(move || {
let episode = dbqueries::get_episode_from_rowid(id).unwrap(); if let Ok(episode) = dbqueries::get_episode_from_rowid(id) {
let e = get_episode(&mut episode.into(), dir.as_str(), Some(prog)); get_episode(&mut episode.into(), dir.as_str(), Some(prog))
if let Err(err) = e { .err()
error!("Error: {}", err); .map(|err| {
}; error!("Error while trying to download an episode");
error!("Error: {}", err);
});
{ {
let mut m = ACTIVE_DOWNLOADS.write().unwrap(); ACTIVE_DOWNLOADS.write().ok().map(|mut x| x.remove(&id));
m.remove(&id); }
sender.send(Action::RefreshEpisodesView).unwrap();
sender.send(Action::RefreshWidget).unwrap();
} }
sender.send(Action::RefreshEpisodesView).unwrap();
sender.send(Action::RefreshWidget).unwrap();
}); });
} }

View File

@ -205,10 +205,7 @@ impl EpisodesViewWidget {
let image: gtk::Image = builder.get_object("cover").unwrap(); let image: gtk::Image = builder.get_object("cover").unwrap();
if let Ok(pd) = dbqueries::get_podcast_cover_from_id(episode.podcast_id()) { if let Ok(pd) = dbqueries::get_podcast_cover_from_id(episode.podcast_id()) {
let img = get_pixbuf_from_path(&pd, 64); get_pixbuf_from_path(&pd, 64).map(|img| image.set_from_pixbuf(&img));
if let Some(i) = img {
image.set_from_pixbuf(&i);
}
} }
let ep = EpisodeWidget::new(episode, sender.clone()); let ep = EpisodeWidget::new(episode, sender.clone());

View File

@ -205,13 +205,15 @@ impl EpisodeWidget {
.parse::<i32>() .parse::<i32>()
.unwrap(); .unwrap();
let prog_struct = { let prog_struct = || -> Option<_> {
let m = manager::ACTIVE_DOWNLOADS.read().unwrap(); if let Ok(m) = manager::ACTIVE_DOWNLOADS.read() {
if !m.contains_key(&id) { if !m.contains_key(&id) {
return; return None;
}; };
m.get(&id).cloned() return m.get(&id).cloned();
}; }
None
}();
let progress_bar = self.progress.clone(); let progress_bar = self.progress.clone();
let total_size = self.total_size.clone(); let total_size = self.total_size.clone();
@ -237,11 +239,15 @@ impl EpisodeWidget {
} }
fn on_download_clicked(ep: &EpisodeWidgetQuery, sender: Sender<Action>) { fn on_download_clicked(ep: &EpisodeWidgetQuery, sender: Sender<Action>) {
let pd = dbqueries::get_podcast_from_id(ep.podcast_id()).unwrap(); let download_fold = dbqueries::get_podcast_from_id(ep.podcast_id())
let download_fold = downloader::get_download_folder(&pd.title().to_owned()).unwrap(); .ok()
.map(|pd| downloader::get_download_folder(&pd.title().to_owned()).ok())
.and_then(|x| x);
// Start a new download. // Start a new download.
manager::add(ep.rowid(), &download_fold, sender.clone()); if let Some(fold) = download_fold {
manager::add(ep.rowid(), &fold, sender.clone());
}
// Update Views // Update Views
sender.send(Action::RefreshEpisodesView).unwrap(); sender.send(Action::RefreshEpisodesView).unwrap();