/// <summary> /// Initializes a new instance of the <see cref="SubtitleItem"/> class. /// </summary> /// <param name="subtitle">The subtitle.</param> public SubtitleItem(Subtitle subtitle) : base(subtitle.Source) { Release = subtitle.Release; InfoURL = subtitle.InfoURL; FileURL = subtitle.FileURL; HINotations = subtitle.HINotations; Corrected = subtitle.Corrected; Language = subtitle.Language; }
/// <summary> /// Downloads the specified link. /// </summary> /// <param name="link">The link.</param> public void Download(Subtitle link) { _active = true; _tdtit = link.Release; _tdstr = "Sending request to " + (string.IsNullOrWhiteSpace(link.FileURL ?? link.InfoURL) ? link.Source.Name : new Uri(link.FileURL ?? link.InfoURL).DnsSafeHost.Replace("www.", string.Empty)) + "..."; var showmbp = false; var mthd = new Thread(() => TaskDialog.Show(new TaskDialogOptions { Title = "Downloading...", MainInstruction = _tdtit, Content = _tdstr, CustomButtons = new[] { "Cancel" }, ShowMarqueeProgressBar = true, ShowProgressBar = true, EnableCallbackTimer = true, AllowDialogCancellation = true, Callback = (dialog, args, data) => { if (!showmbp && _tdpos == 0) { dialog.SetProgressBarMarquee(true, 0); showmbp = true; } if (_tdpos > 0 && showmbp) { dialog.SetMarqueeProgressBar(false); dialog.SetProgressBarState(VistaProgressBarState.Normal); dialog.SetProgressBarPosition(_tdpos); showmbp = false; } if (_tdpos > 0) { dialog.SetProgressBarPosition(_tdpos); } dialog.SetContent(_tdstr); if (args.ButtonId != 0) { if (_active) { try { _dl.CancelAsync(); } catch { } } return false; } if (!_active) { dialog.ClickButton(500); return false; } return true; } })); mthd.SetApartmentState(ApartmentState.STA); mthd.Start(); _dl = link.Source.Downloader; _dl.DownloadFileCompleted += DownloadFileCompleted; _dl.DownloadProgressChanged += (s, a) => { _tdstr = "Downloading file... ({0}%)".FormatWith(a.Data); _tdpos = a.Data; }; _dl.Download(link, Path.Combine(Path.GetTempPath(), Utils.CreateSlug(link.Release.Replace('.', ' ').Replace('_', ' ') + " " + link.Source.Name + " " + Utils.Rand.Next().ToString("x"), false))); Utils.Win7Taskbar(state: TaskbarProgressBarState.Indeterminate); }
/// <summary> /// Downloads the specified link near the specified video. /// </summary> /// <param name="link">The link.</param> /// <param name="episode">The episode to search for.</param> public void DownloadNearVideoOld(Subtitle link, Episode episode) { _link = link; _ep = episode; var paths = Settings.Get<List<string>>("Download Paths"); if (paths.Count == 0) { TaskDialog.Show(new TaskDialogOptions { MainIcon = VistaTaskDialogIcon.Error, Title = "Search path not configured", MainInstruction = "Search path not configured", Content = "To use this feature you must set your download path." + Environment.NewLine + Environment.NewLine + "To do so, click on the logo on the upper left corner of the application, then select 'Configure Software'. On the new window click the 'Browse' button under 'Download Path'.", AllowDialogCancellation = true, CustomButtons = new[] { "OK" } }); return; } _active = true; _tdstr = "Searching for the episode..."; var showmbp = false; var mthd = new Thread(() => TaskDialog.Show(new TaskDialogOptions { Title = "Searching...", MainInstruction = link.Release, Content = "Searching for the episode...", CustomButtons = new[] { "Cancel" }, ShowProgressBar = true, ShowMarqueeProgressBar = true, EnableCallbackTimer = true, AllowDialogCancellation = true, Callback = (dialog, args, data) => { if (!showmbp && _tdpos == 0) { dialog.SetProgressBarMarquee(true, 0); showmbp = true; } if (_tdpos > 0 && showmbp) { dialog.SetMarqueeProgressBar(false); dialog.SetProgressBarState(VistaProgressBarState.Normal); dialog.SetProgressBarPosition(_tdpos); showmbp = false; } if (_tdpos > 0) { dialog.SetProgressBarPosition(_tdpos); } dialog.SetContent(_tdstr); if (args.ButtonId != 0) { if (_active) { try { if (_fs != null) { _fs.CancelSearch(); } if (_dl != null) { _dl.CancelAsync(); } } catch { } } return false; } if (!_active) { dialog.ClickButton(500); return false; } return true; } })); mthd.SetApartmentState(ApartmentState.STA); mthd.Start(); _fs = new FileSearch(paths, _ep); _fs.FileSearchDone += NearVideoFileSearchDoneOld; _fs.FileSearchProgressChanged += NearVideoFileSearchProgressChangedOld; _fs.BeginSearch(); Utils.Win7Taskbar(state: TaskbarProgressBarState.Indeterminate); }