public async Task <Tuple <List <object>, int> > GetImagesTaskAsync(string url) { var l = new List <object>(); var blankurl = url.Remove(url.Length - 1); //Last Page (20) var document = await _webParser.GetHtmlSourceDocumentAsync(url); var pages = Regex.Match(document.DocumentElement.InnerHtml, @"Last Page \((\d+)\)").Groups[1].Value; int.TryParse(pages, out int p); //l.Add(document.All.First(i=> i.LocalName=="img" && i.GetAttribute("id") == "manga-page").GetAttribute("src")); for (var i = 1; i <= p; i++) { document = await _webParser.GetHtmlSourceDocumentAsync(blankurl + i); var img = document.All.First(im => im.LocalName == "img" && im.GetAttribute("id") == "manga-page") .GetAttribute("src"); if (img.StartsWith("//")) { img = $"http:{img}"; } l.Add(img); } return(new Tuple <List <object>, int>(l, p)); }
public async Task <Tuple <List <object>, int> > GetImagesTaskAsync(string url) { //<div class="text">18 ⤵</div> var baserl = url; var imges = new List <object>(); if (!url.EndsWith("page/1")) { url = url + "page/1"; } var html = await _webParser.GetHtmlSourceDocumentAsync(url); imges.Add(html.All.First(i => i.LocalName == "img" && i.ClassList.Contains("open") && i.HasAttribute("src") && i.GetAttribute("src") .Contains("http://sensescans.com/reader/content/comics/")) .GetAttribute("src")); var pages = Regex.Match(html.DocumentElement.InnerHtml, @">([0-9]+) ⤵</div>", RegexOptions.IgnoreCase).Groups[1] .Value.Trim().Trim('.'); var intpages = int.Parse(pages); for (var i = 2; i <= intpages; i++) { url = baserl + $"page/{i}"; html = await _webParser.GetHtmlSourceDocumentAsync(url); imges.Add(html.All.First(x => x.LocalName == "img" && x.ClassList.Contains("open") && x.HasAttribute("src") && x.GetAttribute("src") .Contains("http://sensescans.com/reader/content/comics/")) .GetAttribute("src")); } return(new Tuple <List <object>, int>(imges, intpages)); }
private async Task <Dictionary <string, string> > _load2Pages(string link) { var m = new Dictionary <string, string>(); var html = await _webParser.GetHtmlSourceDocumentAsync(link); var a = html.All.Where( x => x.LocalName == "a" && x.HasAttribute("href") && x.GetAttribute("href").Contains("http://www.heymanga.me/manga/")); foreach (var element in a.Reverse()) { try { if (m.Keys.Contains(element.GetAttribute("href"))) { continue; } m.Add(element.GetAttribute("href"), element.Children[0].InnerHtml); } catch (Exception e) { Console.WriteLine(e); throw; } } return(m); }
public async Task CheckAll(Action <IManga> status) { var all = _dbContext.GetMangasFrom(DbName); var openlink = _dbContext.GetOpenLinks(); foreach (var manga in all) { status.Invoke(manga); if (string.IsNullOrEmpty(manga.BaseMangaLink)) { continue; } var html = await _webParser.GetHtmlSourceDocumentAsync(manga.BaseMangaLink.TrimEnd('/')); if (html == null) { continue; } var tr = html.All.Where( t => t.LocalName == "tr" && t.Children.Length == 2 && t.Children[0].InnerHtml.Contains("chico")); foreach (var element in tr) { var title = element.Children[0].Children[1].TextContent.Trim(); if (title.Contains("Chapter Name")) { continue; } var newDate = DateTime.Parse(element.Children[1].TextContent.Trim('\n').Trim(), CultureInfo.InvariantCulture); var link = "http://mangareader.net" + element.Children[0].Children[1].GetAttribute("href"); if (!title.ToLower().Contains(manga.Name.ToLower())) { continue; } var nc = title.ToLower().Replace(manga.Name.ToLower(), string.Empty).Trim(); if (nc.Contains(" ")) { nc = nc.Split(new[] { ' ' }, StringSplitOptions.RemoveEmptyEntries)[0]; } var isNew = _newChapterHelper.IsNew(manga, nc, newDate, link, openlink); } await Task.Delay(500); } }
public async Task <Tuple <List <object>, int> > GetImagesTaskAsync(string url) { //<div class="text">18 ⤵</div> var baserl = url; var imges = new List <object>(); var html = await _webParser.GetHtmlSourceDocumentAsync(url); imges.AddRange(html.All.Where(i => i.LocalName == "img" && i.ClassList.Contains("img-lazy") && i.HasAttribute("src") && i.GetAttribute("src").Contains("https://mangazuki.co/img/series/")) .Select(i => i.GetAttribute("src"))); var pages = imges.Count; return(new Tuple <List <object>, int>(imges, pages)); }
public async Task CheckAll(Action <IManga> status) { var all = _dbContext.GetMangasFrom(DbName); var openlink = _dbContext.GetOpenLinks(); foreach (var manga in all) { status.Invoke(manga); var html = await _webParser.GetHtmlSourceDocumentAsync(manga.BaseMangaLink); if (html == null) { continue; } var tr = html.All.Where(t => t.LocalName == "tr" && t.Children.Length == 2); foreach (var element in tr.Reverse()) { var title = element.Children[0].TextContent.Trim(); if (title.Contains("Chapter Name")) { continue; } var newDate = DateTime.Parse(element.Children[1].TextContent.Trim('\n').Trim(), CultureInfo.InvariantCulture); var link = "http://kissmanga.com" + element.Children[0].Children[0].GetAttribute("href"); if (!title.ToLower().Contains(manga.Name.ToLower())) { continue; } var nc = title.ToLower().Replace($"{manga.Name.ToLower()}", string.Empty).Trim(); var nnc = Regex.Match(nc, @"(ch\. | chapter )?(\d+\.?\d+):?(.+)?", RegexOptions.IgnoreCase); var ch = nnc.Groups[2].Value; if (string.IsNullOrWhiteSpace(ch)) { ch = nnc.Groups[0].Value; } var isNew = _newChapterHelper.IsNew(manga, ch, newDate, link, openlink); } await Task.Delay(500); } }