internal static bool DownloadSubtitleForVideoParent(string videoHash, string location, bool useSameFolder, string subtitlesFolder, bool isMovie, MainForm mainForm) { string subfilePathSrt; string subfilePathSub; string parentPath; mainForm.UpdateProgress ("Constructing subtitle path..."); var videoFilename = VideoSubtitleDownloaderHelpers .ConstructSubtitlePath (location, useSameFolder, subtitlesFolder, out subfilePathSrt, out subfilePathSub, out parentPath); mainForm.UpdateProgress ("Checking for existing subtitle..."); if (!VideoSubtitleDownloaderHelpers .CheckForExistingSubtitleSetHasSubtitleFlag (videoHash, parentPath, subfilePathSrt, subfilePathSub)) return false; var subsDownloadResult = VideoSubtitleDownloaderHelpers .DownloadSubtitleForPrimaryOrSecondaryLanguage (videoHash, isMovie, videoFilename, parentPath, mainForm); VideoSubtitleDownloaderHelpers .DeleteSubtitleZipFile (videoHash, parentPath); return subsDownloadResult; }
internal static bool GetSubtitleForVideo(string videoHash, string language, string parentPath, string videoFilename, bool isMovie, MainForm mainForm) { #region vars var webClient = new WebClient(); webClient.Headers.Add ("user-agent", "Mozilla/4.0" + " (compatible; MSIE 6.0;" + " Windows NT 5.2;" + " .NET CLR 1.0.3705;)"); string firstsub = string.Empty; var fz = new FastZip(); #endregion if (string.IsNullOrEmpty(parentPath)) return false; if (!parentPath.EndsWith(@"\")) parentPath += @"\"; string zipfilePath = parentPath + videoHash + ".zip"; try { mainForm.UpdateProgress ("Searching OSDb for subtitle..."); firstsub = VideoSubtitleDownloaderHelpers .SearchForSubtitleByVideoHashParent (videoHash, language); mainForm.UpdateProgress ("Downloading subtitle..."); if (!VideoSubtitleDownloaderHelpers .PerformSubtitleDownload (zipfilePath, webClient, firstsub)) return false; } catch (Exception e) { MessageBox.Show (@"An error occured while trying to download the subtitle on online address: " + firstsub + @" to local location: " + zipfilePath + @". The error was: " + e); return false; } mainForm.UpdateProgress ("Validating downloaded data..."); if (!VideoSubtitleDownloaderHelpers .ValidateDownloadedDataAndRetry (language, firstsub, webClient, zipfilePath)) return false; mainForm.UpdateProgress ("Extracting subtitle file..."); VideoSubtitleDownloaderHelpers .ExtractAndRenameSubtitle (language, parentPath, videoFilename, zipfilePath, fz); mainForm.UpdateProgress ("All Done! Bye bye..."); Thread.Sleep(2000); Application.Exit(); return true; }
internal static bool DownloadSubtitleForPrimaryOrSecondaryLanguage (string moviehash, bool isMovie, string videoFilename, string parentPath, MainForm mainForm) { bool subsDownloadResult = VideoSusbtitleDownloader.GetSubtitleForVideo (moviehash, mainForm.LanguageSelectionComboBox.Text, parentPath, videoFilename, isMovie, mainForm); //if (!subsDownloadResult) // subsDownloadResult = VideoSusbtitleDownloader.GetSubtitleForVideo // (moviehash, Settings.SecondaryLanguage, // parentPath, videoFilename, isMovie, mainForm); return subsDownloadResult; }