private bool DoDownloadChapters(string link, string baseUrl) { try { var downloader = new Downloader(); var parser = new PageParser(); var error = ""; var page = downloader.DownloadPage(link, out error); if (string.IsNullOrEmpty(page)) { UpdateStatusText(error); return false; } _currentChapterList = parser.GetChapterList(page, baseUrl); UpdateStatusText(string.Format(@"Загрузка оглавления завершена. Всего глав: {0}", _currentChapterList.Count)); UpdateDownloadStatus(true); } catch (Exception e) { UpdateStatusText(string.Format(@"Ошибка: {0}", e.Message)); return false; } finally { UpdateLoadStatus(true); } return true; }
private bool DoDownloadImages(string baseUrl) { UpdateLoadStatus(false); UpdateDownloadStatus(false); UpdateStatusText(@"Начинаем загркузку изображений..."); var downloadMgr = new DownloadMgr(); var parser = new PageParser(); var downloader = new Downloader(); var i = 0; foreach (var chapter in _currentChapterList) { var chapterName = chapter.Split('/')[5].Replace("?mature=1", ""); UpdateStatusText(string.Format(@"Начинаем загркузку главы: {0}", chapterName)); var error = ""; var page = downloader.DownloadPage(chapter, out error); if (!string.IsNullOrEmpty(error)) { for (var x = 0; x < 5; ++x) { if (!string.IsNullOrEmpty(error)) { UpdateStatusText(string.Format(@"Ошибка при загрузке главы (попытки {0} из {1}): {2}", x, 5, error)); page = downloader.DownloadPage(chapter, out error); } else { break; } } } var imageList = parser.GetPageList(page); foreach (var image in imageList) { var fileName = image.Split('/')[7]; UpdateStatusText(string.Format(@"Начинаем загркузку изображения: {0} (Глава: {1})", fileName, chapterName)); downloadMgr.DownloadImage(image, chapter); } UpdateStatusText(string.Format(@"Загружена глава {0} ({1}) из {2}", ++i, chapter, _currentChapterList.Count)); } return true; }