Exemplo n.º 1
0
        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);
            }
        }
Exemplo n.º 2
0
        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;
        }