public int GetChapterPageCount(int ID) { var Page = GetChapterHtml(ID); string ChpScript = Page.SelectSingleNode("//script[contains(., \"chapterid\")]").InnerHtml; string CntScript = $"{ChpScript}imagecount;"; return((int)JSTools.EvaluateScript(CntScript)); }
private string[] GetChapterPages(int ID) { var Page = GetChapterHtml(ID); string KeyScript = Page.SelectSingleNode("//script[contains(., \"eval\")]").InnerHtml; string ChpScript = Page.SelectSingleNode("//script[contains(., \"chapterid\")]").InnerHtml; KeyScript = $"function $(a) {{var a = []; a.val = function(b){{return b}}; return a}}\r\n{KeyScript}"; string CntScript = $"{ChpScript}imagecount;"; string CidScript = $"{ChpScript}chapterid;"; int Count = (int)JSTools.EvaluateScript(CntScript); int ChpId = (int)JSTools.EvaluateScript(CidScript); string Key = (string)JSTools.EvaluateScript(KeyScript); string Link = ChapterLinks[ID]; Link = Link.Substring(0, Link.LastIndexOf("/")); List <string> Pages = new List <string>(); for (int i = 1; i <= Count;) { string URL = $"{Link}/chapterfun.ashx?cid={ChpId}&page={i}&key={Key}"; string JS = Encoding.UTF8.GetString(TryDownload(new Uri(URL), ChapterLinks[ID])); JS += "\r\nd.join('|');"; string Result = (string)JSTools.EvaluateScript(JS); if (Result == null) { break; } string[] cPages = Result.Split('|'); for (int x = 0; x < cPages.Length; x++, i++) { string cPage = cPages[x]; if (cPage.StartsWith("//")) { cPage = "https:" + cPage; } Pages.Add(cPage); } } return(Pages.ToArray()); }
private string[] GetChapterPages(int ID) { var Doc = new HtmlDocument(); Doc.LoadUrl(new Uri(LinkMap[ID])); var Script = Doc.SelectSingleNode("//script[contains(., \"var pages\")]").InnerHtml; Script = Script.Substring(0, Script.IndexOf("var next_chapter")); Script += "\r\nvar rst = []; for (var i = 0; i < pages.length; i++) rst.push(pages[i].url); rst;"; var Rst = (List <object>)JSTools.EvaluateScript(Script); return((from x in Rst select(string) x).ToArray()); }
private string[] GetChapterPages(int ID) { var Page = GetChapterHtml(ID); List <string> Pages = new List <string>(); var Scripts = Page.SelectNodes("//body//script[@type=\"text/javascript\"]"); bool Found = false; foreach (var Node in Scripts) { if (!Node.InnerHtml.Contains("var images")) { continue; } Found = true; string JS = Node.InnerHtml.Substring("var images = ", "\"];") + "\"]"; var Result = (from x in JSTools.EvaluateScript <List <object> >(JS) select(string) x).ToArray(); foreach (string PageHtml in Result) { var PageUrl = PageHtml.Substring("src=", " ").Trim(' ', '\'', '"'); Pages.Add(PageUrl); } } if (!Found) { foreach (var Img in Page.SelectNodes("//section[@id='imageWrapper']//img")) { Pages.Add(Img.GetAttributeValue("src", string.Empty)); } } var Links = (from x in Pages select x.Replace(".webp", "").Replace("/images", "/mangas_files")).ToArray(); if (Links.Where(x => string.IsNullOrEmpty(System.IO.Path.GetExtension(x))).Any()) { return(Links.Select(x => x + ".webp").ToArray()); } return(Links); }