private async Task <IBlog> CheckIfBlogIsHiddenTumblrBlog(IBlog blog) { if (blog.GetType() == typeof(TumblrBlog) && await tumblrBlogDetector.IsHiddenTumblrBlog(blog.Url)) { RemoveBlog(new[] { blog }); blog = TumblrHiddenBlog.Create("https://www.tumblr.com/dashboard/blog/" + blog.Name, Path.Combine(shellService.Settings.DownloadLocation, "Index")); } return(blog); }
private async Task AddBlogAsync(string blogUrl) { if (string.IsNullOrEmpty(blogUrl)) { blogUrl = crawlerService.NewBlogUrl; } IBlog blog; try { blog = blogFactory.GetBlog(blogUrl, Path.Combine(shellService.Settings.DownloadLocation, "Index")); } catch (ArgumentException) { return; } if (blog.GetType() == typeof(TumblrBlog) && await tumblrBlogDetector.IsHiddenTumblrBlog(blog.Url)) { blog = PromoteTumblrBlogToHiddenBlog(blog); } lock (lockObject) { if (managerService.BlogFiles.Any(blogs => blogs.Name.Equals(blog.Name) && blogs.BlogType.Equals(blog.BlogType))) { shellService.ShowError(null, Resources.BlogAlreadyExist, blog.Name); return; } if (blog.Save()) { AddToManager(blog); } } blog = settingsService.TransferGlobalSettingsToBlog(blog); ICrawler crawler = crawlerFactory.GetCrawler(blog, new CancellationToken(), new PauseToken(), new Progress <DownloadProgress>()); await crawler.UpdateMetaInformationAsync(); }