diff --git a/TODO.md b/TODO.md index 9902b93..06f9ef4 100644 --- a/TODO.md +++ b/TODO.md @@ -35,9 +35,9 @@ **DB changes:** -- [ ] Db episodes: add watched field +- [ ] episodes: add watched field - [ ] Mark episodes/podcast for archival -- [ ] Podcast deletion +- [x] Podcast deletion - [ ] Download cleaner - [ ] Mark stuff as Favorite. Maybe auto-archive favorites? - [ ] New episode notifier on podcast_flowbox_child, like the one vocal has diff --git a/hammond-data/src/feedparser.rs b/hammond-data/src/feedparser.rs index 4614311..e8247f3 100644 --- a/hammond-data/src/feedparser.rs +++ b/hammond-data/src/feedparser.rs @@ -172,11 +172,11 @@ mod tests { let channel = Channel::read_from(BufReader::new(file)).unwrap(); let firstitem = channel.items().first().unwrap(); - let descr = "NSA whistleblower Edward Snowden discusses the massive Equifax data \ - breach and allegations of Russian interference in the US election. \ - Commentator Shaun King explains his call for a boycott of the NFL and \ - talks about his campaign to bring violent neo-Nazis to justice. Rapper \ - Open Mike Eagle performs."; + let descr = "NSA whistleblower Edward Snowden discusses the massive Equifax data breach \ + and allegations of Russian interference in the US election. Commentator \ + Shaun King explains his call for a boycott of the NFL and talks about his \ + campaign to bring violent neo-Nazis to justice. Rapper Open Mike Eagle \ + performs."; let i = parse_episode(&firstitem, 0); assert_eq!(i.title, Some("The Super Bowl of Racism")); @@ -251,9 +251,9 @@ mod tests { let second = channel.items().iter().nth(1).unwrap(); let i2 = parse_episode(&second, 0); - let descr2 = "
Jonathan Allen and Amie Parnes didn’t know their \ - book would be called ‘Shattered,’ or that their extraordinary access would \ - let them chronicle the mounting signs of a doomed campaign.
"; + let descr2 = "Jonathan Allen and Amie Parnes didn’t know their book would be called \ + ‘Shattered,’ or that their extraordinary access would let them chronicle \ + the mounting signs of a doomed campaign.
"; assert_eq!( i2.title, @@ -287,10 +287,10 @@ mod tests { let channel = Channel::read_from(BufReader::new(file)).unwrap(); let firstitem = channel.items().first().unwrap(); - let descr = "Audit your network with a couple of easy commands on Kali Linux. Chris \ - decides to blow off a little steam by attacking his IoT devices, Wes \ - has the scope on Equifax blaming open source & the Beard just saved \ - the show. It’s a really packed episode!"; + let descr = + "Audit your network with a couple of easy commands on Kali Linux. Chris decides to \ + blow off a little steam by attacking his IoT devices, Wes has the scope on Equifax \ + blaming open source & the Beard just saved the show. It’s a really packed episode!"; let i = parse_episode(&firstitem, 0); assert_eq!(i.title, Some("Hacking Devices with Kali Linux | LUP 214")); @@ -313,8 +313,7 @@ mod tests { let descr2 = "The Gnome project is about to solve one of our audience's biggest \ Wayland’s concerns. But as the project takes on a new level of relevance, \ decisions for the next version of Gnome have us worried about the \ - future.
\n\n\ -Plus we chat with Wimpy about the Ubuntu Rally in NYC, \ + future.
\n\nPlus we chat with Wimpy about the Ubuntu Rally in NYC, \ Microsoft’s sneaky move to turn Windows 10 into the “ULTIMATE LINUX \ RUNTIME”, community news & more!
"; assert_eq!(i2.title, Some("Gnome Does it Again | LUP 213")); diff --git a/hammond-data/src/models.rs b/hammond-data/src/models.rs index 5dc6bf6..63e9e01 100644 --- a/hammond-data/src/models.rs +++ b/hammond-data/src/models.rs @@ -207,7 +207,7 @@ impl<'a> Source { { self.http_etag = etag.map(|x| x.tag().to_string().to_owned()); self.last_modified = lmod.map(|x| format!("{}", x)); - self.save(&db)?; + self.save(db)?; } Ok(()) diff --git a/hammond-gtk/src/views/podcasts_view.rs b/hammond-gtk/src/views/podcasts_view.rs index 6c9afa3..0c32d03 100644 --- a/hammond-gtk/src/views/podcasts_view.rs +++ b/hammond-gtk/src/views/podcasts_view.rs @@ -59,7 +59,7 @@ fn populate_flowbox(db: &Database, stack: >k::Stack, flowbox: >k::FlowBox) { } fn setup_podcast_widget(db: &Database, stack: >k::Stack) { - let pd_widget = podcast_widget(db, None, None, None); + let pd_widget = podcast_widget(db, stack, None, None, None); stack.add_named(&pd_widget, "pdw"); } diff --git a/hammond-gtk/src/widgets/podcast.rs b/hammond-gtk/src/widgets/podcast.rs index e53386e..c1fc1a3 100644 --- a/hammond-gtk/src/widgets/podcast.rs +++ b/hammond-gtk/src/widgets/podcast.rs @@ -2,12 +2,15 @@ use gtk::prelude::*; use gtk; use gdk_pixbuf::Pixbuf; +use std::fs; + use hammond_data::models::Podcast; use hammond_downloader::downloader; use hammond_data::index_feed::Database; use hammond_data::dbqueries::{load_podcast_from_title, remove_feed}; use widgets::episode::episodes_listbox; +use podcasts_view::update_podcasts_view; // http://gtk-rs.org/tuto/closures macro_rules! clone { @@ -29,6 +32,7 @@ macro_rules! clone { pub fn podcast_widget( db: &Database, + stack: >k::Stack, title: Option<&str>, description: Option<&str>, image: Option