示例#1
0
        private async void Commands_AddRssFeed(object sender, ExecutedRoutedEventArgs e)
        {
            var query = new UI.AddRSSFeed()
            {
                Icon = this.Icon, Owner = this
            };

            if (query.ShowDialog() == true)
            {
                if (string.IsNullOrWhiteSpace(query.Url))
                {
                    MessageBox.Show(this, "Url cannot be empty.", "Error", MessageBoxButton.OK, MessageBoxImage.Error);
                    return;
                }

                if (!query.Url.StartsWith("http://") || !query.Url.StartsWith("https://"))
                {
                    query.Url = "http://" + query.Url;
                }

                var rss_entry = new RssUrlEntry()
                {
                    Url                     = query.Url,
                    Alias                   = query.CustomAlias,
                    AutoDownload            = query.AutoDownload == true,
                    Filters                 = query.Filters,
                    DownloadDirectory       = string.IsNullOrWhiteSpace(query.DownloadPath) ? App.Settings.DefaultDownloadPath : query.DownloadPath,
                    IsCustomtUpdateInterval = query.UpdateIntervalType == 1,
                    CustomUpdateInterval    = new TimeSpan(0, 0, query.CustomIntervalSeconds),
                    DefaultSettings         = App.Settings.DefaultTorrentProperties
                };

                if (await rss_entry.TestAsync())
                {
                    FeedsManager.Add(rss_entry);
                }
                else
                {
                    MessageBox.Show(
                        this,
                        "This RSS entry seem to be invalid. \n\n If your internet connection is down, try adding it when it's up again.",
                        "Error",
                        MessageBoxButton.OK, MessageBoxImage.Error);
                }
            }
        }