コード例 #1
0
        public override async Task <Book> GetBook(string bookUrl)
        {
            string page = await DownloadHelper.DownloadStringAsync(bookUrl);

            var  chaptersLinks = ParseHelper.ParseGroup("<li>\\s*<a href=\"(?<Value>http://[^\"]+)\">\\s*<span class=\"val\">(?<Name>.+)</span>", page, "Name", "Value").Reverse().ToArray();
            Book book          = new Book();
            var  chapters      = new List <Chapter>();

            for (int i = 0; i < chaptersLinks.Length; i++)
            {
                var c = chaptersLinks[i];
                chapters.Add(new Chapter()
                {
                    DisplayName   = c.Name,
                    Url           = c.Value,
                    Book          = book,
                    ChapterNumber = i
                });
            }
            book.Chapters = chapters.ToArray();
            book.Url      = bookUrl;

            //Get other book details
            var imgUrl = ParseHelper.Parse("<div class=\"col-md-4\">\\s*<img src=\"(?<Value>.+)\" alt=", page, "Value").First();

            book.CoverImage = await DownloadHelper.DownloadImageAsync(imgUrl);

            book.Title       = ParseHelper.Parse("<h5 class=\"widget-heading\">(?<Value>.+)</h5>", page, "Value").First();
            book.Description = ParseHelper.Parse("<div class=\"note note-default margin-top-15\">(?<Value>(.|\\s)*?)</div>", page, "Value").First().Trim();
            book.Description = System.Web.HttpUtility.HtmlDecode(book.Description);
            book.Description = book.Description.Replace("<br/>", "\n");

            return(book);
        }
コード例 #2
0
        public override async Task <Book> GetBook(string bookUrl)
        {
            string page = await DownloadHelper.DownloadStringAsync(bookUrl);

            var  chaptersLinks = ParseHelper.ParseGroup("<a class=\"color_0077\" href=\"(?<Value>.*?)\".*>(?<Name>\\s*.*\\s*)</a>", page, "Name", "Value").Reverse().ToArray();
            Book book          = new Book();
            var  chapters      = new List <Chapter>();

            for (int i = 0; i < chaptersLinks.Length; i++)
            {
                var c = chaptersLinks[i];
                chapters.Add(new Chapter()
                {
                    DisplayName   = c.Name,
                    Url           = "https:" + c.Value,
                    Book          = book,
                    ChapterNumber = i
                });
            }
            book.Chapters = chapters.ToArray();
            book.Url      = bookUrl;

            //Get other book details
            var imgUrl = ParseHelper.Parse("<div class=\"manga_detail_top clearfix\">\\s+<img src=\"(?<Value>.+)\" onerror=", page, "Value").First();

            book.CoverImage = await DownloadHelper.DownloadImageAsync(imgUrl);

            book.Title       = ParseHelper.Parse("<h2>(?<Value>.+) Manga</h2>\\s+Summary:", page, "Value").First();
            book.Description = ParseHelper.Parse("<p id=\"show\" style=\"display:none;\">(?<Value>[^\"]+)<a href=\"javascript:void", page, "Value").First();
            book.Description = System.Web.HttpUtility.HtmlDecode(book.Description);

            return(book);
        }
コード例 #3
0
        public override async Task <Book> GetBook(string bookUrl)
        {
            string page = await DownloadHelper.DownloadStringAsync(bookUrl);

            //Get chapters
            var  chaptersLinks    = ParseHelper.ParseGroup("<a href=\"(?<Value>[^\"]+)\">(?<Name>[^<]+)</a> :", page, "Name", "Value");
            var  resolvedChapters = chaptersLinks.Reverse().GroupBy(x => x.Value).Select(g => g.First()).Reverse().ToArray();
            Book book             = new Book();
            var  chapters         = new List <Chapter>();

            for (int i = 0; i < resolvedChapters.Length; i++)
            {
                var c = resolvedChapters[i];
                chapters.Add(new Chapter()
                {
                    DisplayName   = c.Name,
                    Url           = new Uri(new Uri(bookUrl), c.Value).AbsoluteUri,
                    Book          = book,
                    ChapterNumber = i
                });
            }
            book.Chapters = chapters.ToArray();
            book.Url      = bookUrl;

            //Get other book details
            var imgUrl = ParseHelper.Parse("<div id=\"mangaimg\"><img src=\"(?<Value>.+)\" alt=", page, "Value").First();

            book.CoverImage = await DownloadHelper.DownloadImageAsync(imgUrl);

            book.Title       = ParseHelper.Parse("<h2 class=\"aname\">(?<Value>.+)</h2>", page, "Value").First();
            book.Description = ParseHelper.Parse("<div id=\"readmangasum\">\\s+<h2>.+</h2>\\s+<p>(?<Value>(?s).*?)</p>\\s+</div>", page, "Value").First();
            book.Description = System.Web.HttpUtility.HtmlDecode(book.Description);

            return(book);
        }
コード例 #4
0
        public override async Task <Book> GetBook(string bookUrl)
        {
            string page = await DownloadHelper.DownloadStringAsync(bookUrl);

            var  chaptersLinks = ParseHelper.ParseGroup("<a href=\"(?<Value>.*?)\" .*? class=\"tips\">(?<Name>.*?)</a>", page, "Name", "Value").Reverse().ToArray();
            Book book          = new Book();
            var  chapters      = new List <Chapter>();

            for (int i = 0; i < chaptersLinks.Length; i++)
            {
                var c = chaptersLinks[i];
                chapters.Add(new Chapter()
                {
                    DisplayName   = c.Name,
                    Url           = "https:" + c.Value,
                    Book          = book,
                    ChapterNumber = i
                });
            }
            book.Chapters = chapters.ToArray();
            book.Url      = bookUrl;

            //Get other book details
            var imgUrl = ParseHelper.Parse("<div class=\"cover\">\\s+<img .*? src=\"(?<Value>.*?)\"", page, "Value").First();

            book.CoverImage = await DownloadHelper.DownloadImageAsync(imgUrl);

            book.Title = ParseHelper.Parse("<div id=\"title\">\\s+<h1 .*?>\\s*(?<Value>.*?)\\s*</h1>", page, "Value").First();

            try
            {
                book.Description = ParseHelper.Parse("<p class=\"summary\">(?<Value>(.|\\s)*?)</p>", page, "Value").First();
                book.Description = System.Web.HttpUtility.HtmlDecode(book.Description);
                book.Description = book.Description.Replace("<br />", "\n");

                book.Genres = ParseHelper.Parse("<a href=\"//mangafox.me/search/genres/.*?/\">(?<Name>.*?)</a>", page, "Name").ToArray();
            } catch (Exception e)
            {
            }

            return(book);
        }
コード例 #5
0
        public override async Task <Page> DownloadPage(Page page)
        {
            page.Image = await DownloadHelper.DownloadImageAsync(page.Url);

            return(page);
        }