Esempio n. 1
0
        private void ParseImageLinks(NijieImage image, HtmlDocument doc)
        {
            var selector = "//div[@id='gallery_open']//img[@class='mozamoza ngtag']";

            if (image.IsVideo)
            {
                selector = "//div[@id='gallery_open']//video";
            }

            var mediumImageLink = doc.DocumentNode.SelectSingleNode(selector);

            if (mediumImageLink != null)
            {
                image.MediumImageUrl = Util.FixUrl(mediumImageLink.Attributes["src"].Value, ROOT_DOMAIN, Properties.Settings.Default.UseHttps);
            }
            ;

            var bigImageLinks = doc.DocumentNode.SelectNodes("//div[@id='gallery_open']//a");

            if (bigImageLinks != null)
            {
                image.BigImageUrl = Util.FixUrl(bigImageLinks[0].Attributes["href"].Value, ROOT_DOMAIN, Properties.Settings.Default.UseHttps);
                if (bigImageLinks.Count > 1)
                {
                    image.IsManga    = true;
                    image.ImageUrls  = new List <string>();
                    image.MangaPages = new List <NijieMangaInfo>();
                    int p = 1;
                    foreach (var bigImage in bigImageLinks)
                    {
                        image.ImageUrls.Add(Util.FixUrl(bigImage.Attributes["href"].Value, ROOT_DOMAIN, Properties.Settings.Default.UseHttps));

                        var page = new NijieMangaInfo();
                        page.Image    = image;
                        page.ImageId  = image.ImageId;
                        page.Page     = p++;
                        page.ImageUrl = bigImage.Attributes["href"].Value;
                        image.MangaPages.Add(page);
                    }
                }
                else
                {
                    image.IsManga = false;
                }
            }

            // check if image urls is using popups
            if (image.BigImageUrl.Contains("view_popup.php"))
            {
                image = ParseImagePopups(image);
            }
        }
Esempio n. 2
0
        private void ProcessDoujin(NijieImage image, HtmlDocument doc)
        {
            image.IsDoujin = true;
            image.IsVideo  = false;

            // member id
            var memberDivs = doc.DocumentNode.SelectNodes("//div[@id='dojin_left']//p[@class='text']//a");

            foreach (var item in memberDivs)
            {
                var href = item.Attributes["href"].Value;
                if (href.Contains("/members.php?id="))
                {
                    var split = href.Split('=');
                    image.Member = new NijieMember(Int32.Parse(split[1]), MemberMode.Doujin);
                    break;
                }
            }

            // parse doujin title
            var doujinTitleDiv = doc.DocumentNode.SelectSingleNode("//div[@id='dojin_header']//h2[@class='title']");

            image.Title = doujinTitleDiv.InnerText;

            // parse description
            var doujinDescription = doc.DocumentNode.SelectSingleNode("//p[@itemprop='description']");

            image.Description = doujinTitleDiv.InnerText;

            // created date
            var doujinCreated = doc.DocumentNode.SelectSingleNode("//div[@id='dojin_left']//span");

            image.WorkDate = DateTime.ParseExact(doujinCreated.InnerText, "yyyy-MM-dd HH:mm:ss", System.Globalization.CultureInfo.InvariantCulture);

            // main image
            var mainImage = doc.DocumentNode.SelectSingleNode("//div[@id='dojin_left']//p[@class='image']/a/img");

            image.MediumImageUrl = Util.FixUrl(mainImage.Attributes["src"].Value, ROOT_DOMAIN, Properties.Settings.Default.UseHttps);

            var bigImage = doc.DocumentNode.SelectSingleNode("//div[@id='dojin_left']//p[@class='image']/a");

            image.BigImageUrl = Util.FixUrl(bigImage.Attributes["href"].Value, ROOT_DOMAIN, Properties.Settings.Default.UseHttps);

            // tags
            var tags = doc.DocumentNode.SelectNodes("//ul[@id='tag']//span[@class='tag_name']/a");

            if (tags != null)
            {
                image.Tags = new List <NijieTag>();
                foreach (var item in tags)
                {
                    if (!String.IsNullOrWhiteSpace(item.InnerText))
                    {
                        image.Tags.Add(new NijieTag()
                        {
                            Name = item.InnerText
                        });
                    }
                }
            }

            // pages
            image.IsManga    = true;
            image.ImageUrls  = new List <string>();
            image.MangaPages = new List <NijieMangaInfo>();
            int p = 1;

            //image.BigImageUrl = Util.FixUrl(image.BigImageUrl, ROOT_DOMAIN, Properties.Settings.Default.UseHttps);
            image.ImageUrls.Add(image.BigImageUrl);
            var page = new NijieMangaInfo();

            page.Image    = image;
            page.ImageId  = image.ImageId;
            page.Page     = p++;
            page.ImageUrl = image.BigImageUrl;
            image.MangaPages.Add(page);

            var subImages = doc.DocumentNode.SelectNodes("//div[@id='gallery_new']//ul[@id='thumbnail']//a");

            if (subImages != null && subImages.Count > 0)
            {
                foreach (var item in subImages)
                {
                    var tempUrl = Util.FixUrl(item.Attributes["href"].Value, ROOT_DOMAIN, Properties.Settings.Default.UseHttps);
                    image.ImageUrls.Add(tempUrl);

                    page          = new NijieMangaInfo();
                    page.Image    = image;
                    page.ImageId  = image.ImageId;
                    page.Page     = p++;
                    page.ImageUrl = item.Attributes["href"].Value;
                    image.MangaPages.Add(page);
                }
            }

            // parse actual image urls
            image = ParseImagePopups(image);
        }