private void Callback(PostItem postItem) { string hTML = postItem.Post.HTML; List <YouTubeVideoQuality> youTubeVideoUrls = YouTubeDownloader.GetYouTubeVideoUrls(hTML); if (youTubeVideoUrls.Count == 0) { Thread.Sleep(1000); youTubeVideoUrls = YouTubeDownloader.GetYouTubeVideoUrls(hTML); } if (youTubeVideoUrls.Count > 0) { int num = 0; num = 0; while (num < youTubeVideoUrls.Count && !youTubeVideoUrls[num].Extention.Equals("mp4")) { num++; } PostItemVideo postItemVideo = new PostItemVideo(postItem.Post, youTubeVideoUrls[num].DownloadUrl); Post post = postItem.Post; post.Name = string.Concat(post.Name, ".", youTubeVideoUrls[num].Extention); postItem.Post.Items.Add(postItemVideo); this.AddToDownloadQueue(postItem.Post); } }
protected void processPostCallback(PostItem postItem) { Post post = postItem.Post; HtmlDocument htmlDocument = new HtmlDocument(); if (post.HTML == null) { return; } htmlDocument.LoadHtml(post.HTML); lock (this.w) { Website website = this.w; object[] postCount = new object[] { "PhotoSet Scan: Page ", null, null, null }; int num = this._photoSetScan + 1; this._photoSetScan = num; postCount[1] = num; postCount[2] = "/"; postCount[3] = this.w.PostCount; website.Viewstatus = string.Concat(postCount); } string hTML = post.HTML; string str = "image"; foreach (HtmlNode htmlNode in (IEnumerable <HtmlNode>)htmlDocument.DocumentNode.SelectNodes("//meta")) { if (!htmlNode.Attributes.Contains("property") || !htmlNode.Attributes["property"].Value.Contains("og:type")) { continue; } str = htmlNode.Attributes["content"].Value.Replace("tumblr-feed:", ""); } string[] strArrays = post.Url.Replace("http://", "").Split(new char[] { '/' }); string str1 = string.Concat("http://", strArrays[0], "/video_file/", strArrays[2]); int num1 = hTML.IndexOf(str1); if (num1 > -1) { int num2 = hTML.IndexOf("\\x22", num1); string str2 = hTML.Substring(num1, num2 - num1); str2 = string.Concat(str2.Replace(str1, "http://vt.tumblr.com"), ".mp4"); PostItemVideo postItemVideo = new PostItemVideo(post, str2); post.Items.Add(postItemVideo); } HtmlNodeCollection htmlNodeCollections = htmlDocument.DocumentNode.SelectNodes("//iframe"); bool flag = false; foreach (HtmlNode htmlNode1 in (IEnumerable <HtmlNode>)htmlDocument.DocumentNode.SelectNodes("//meta")) { if (!htmlNode1.Attributes.Contains("property") || !htmlNode1.Attributes["property"].Value.Equals("og:image")) { continue; } string value = htmlNode1.Attributes["content"].Value; if (str == "video") { if (value.IndexOf("tumblr_") <= 0) { continue; } string str3 = value.Substring(value.IndexOf("tumblr_")).Replace("_frame1.jpg", ""); value = string.Concat("http://vt.tumblr.com/", str3, ".mp4"); PostItemVideo postItemVideo1 = new PostItemVideo(post, value); post.Items.Add(postItemVideo1); flag = true; } else { PostItemPhoto postItemPhoto = new PostItemPhoto(post, value, value) { Post = post }; post.Items.Add(postItemPhoto); flag = true; } } htmlNodeCollections = htmlDocument.DocumentNode.SelectNodes("//img"); if (htmlNodeCollections != null && !flag) { foreach (HtmlNode htmlNode2 in (IEnumerable <HtmlNode>)htmlNodeCollections) { if (!htmlNode2.Attributes.Contains("src")) { continue; } string value1 = htmlNode2.Attributes["src"].Value; if (!value1.Contains("_500.") && !value1.Contains("_1280.") && !value1.Contains("_400.") && !value1.Contains("_300.") && !value1.Contains("_250.") && !value1.Contains("_150.")) { continue; } string str4 = value1.Replace("_500", "_1280"); PostItemPhoto postItemPhoto1 = new PostItemPhoto(post, str4, value1) { Post = post }; post.Items.Add(postItemPhoto1); } } Downloader.GetInstance().Start(); if (post.Items.Count > 0) { this.AddToDownloadQueue(post); } htmlDocument = null; }