Beispiel #1
0
        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();
            }
        }
Beispiel #2
0
 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!";
     }
 }
Beispiel #3
0
        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();
            }
        }
Beispiel #4
0
        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";
                }
            }
        }