private void btValidateAndAddNewRssFeed_Click(object sender, RoutedEventArgs e) { if (String.IsNullOrEmpty(tbUrl.Text)) { System.Windows.Forms.MessageBox.Show("URL Error:\nPlease enter url"); } else if (String.IsNullOrEmpty(tbFolderPath.Text)) { System.Windows.Forms.MessageBox.Show("FOLDER ERROR:\nPlease select folder"); } else if (String.IsNullOrEmpty(tbTitle.Text)) { System.Windows.Forms.MessageBox.Show("TITLE ERROR:\nPlease specify title"); } else { MainWindow window = (MainWindow)System.Windows.Application.Current.MainWindow; var tbSelectedBacklogSize = (TextBlock)cbBacklogSize.SelectedItem; WatchlistItem item = new WatchlistItem() { backlogSize = (int)tbSelectedBacklogSize.Tag, folder = tbFolderPath.Text, title = tbTitle.Text, url = tbUrl.Text, timestamp = DateTime.Now.ToString(), status = "new" }; window.watchlist.addRssFeed(item); this.Close(); } }
public void addRssFeed(WatchlistItem item) { if (!doesWatchlistContainUrl(item.url)) { item.PropertyChanged += Item_PropertyChanged; MainWatchlist.Add(item); saveSettings(); refreshRssFeed(item.url); } else { MainWindow window = (MainWindow)System.Windows.Application.Current.MainWindow; window.consoleOutput = "RSS address already in use!"; } }
public void removeRssFeed(string url) { WatchlistItem itemToRemove = null; foreach (WatchlistItem item in MainWatchlist) { if (item.url == url) { itemToRemove = item; break; } } if (itemToRemove != null) { MainWindow window = (MainWindow)System.Windows.Application.Current.MainWindow; window.consoleOutput = "Removed feed: " + itemToRemove.title + " with url: " + itemToRemove.url; MainWatchlist.Remove(itemToRemove); saveSettings(); } }
private void downloadRssFeed(string url) { WatchlistItem rssSettings = null; foreach (WatchlistItem item in MainWatchlist) { if (item.url == url) { rssSettings = item; break; } } if (rssSettings != null) { var newFeed = dl.GetXml(url); if (newFeed != null) { rssSettings.status = "downloading..."; rssSettings.timestamp = DateTime.Now.ToLocalTime().ToString(); int index = 0; foreach (var item in newFeed.Channel.Items) { foreach (var enclosureItem in item.Enclosures) { string filename = getFilenameFromFileUrl(enclosureItem.Url.ToString()); string fileUrl = getUrlFromEnclosure(enclosureItem); Console.WriteLine(filename); if (!File.Exists(rssSettings.folder + "//" + filename) && MainWatchlist.Contains(rssSettings)) { dl.DownloadEnclosureFiles(fileUrl, rssSettings.folder, filename, item); } } if (index++ > rssSettings.backlogSize) { break; } } rssSettings.status = "up to date"; } } }