public override IEnumerable<Manga> GetMangas(Url pageUrl) { var mangas = new List<Manga>(); this.LoadDocument(pageUrl); if (currentDoc.ParseErrors != null && currentDoc.ParseErrors.Any()) { } else { var nodes = currentDoc.DocumentNode?.SelectNodes("//li[div[@class='cover' or @class='intro']]"); if (nodes != null) foreach (var node in nodes) { var manga = new Manga(); foreach (var divNode in node.SelectNodes("div")) { if (divNode.Attributes.Any(x => x.Value.Equals("cover"))) { GetMangaLink(manga, divNode); GetCoverLink(manga, divNode); } else if (divNode.Attributes.Any(x => x.Value.Equals("intro"))) { GetTitle(manga, divNode); GetMangaLink(manga, divNode); GetChapter(manga, divNode); GetChapterLink(manga, divNode); GetDescription(manga, divNode); } } manga.FormatChapter(); mangas.Add(manga); } } return mangas.AsEnumerable(); }
private static void GetMangaLink(Manga manga, HtmlNode divNode) { if (manga.Link != null) { var node = divNode.SelectSingleNode(".//a"); var attribute = node.Attributes.FirstOrDefault(x => x.Name.Equals("href")); if (attribute != null) manga.Link = HelperClass.CreateUrl(attribute.Value); } }
private static void GetCoverLink(Manga manga, HtmlNode divNode) { var node = divNode.SelectSingleNode(".//img"); var attribute = node.Attributes.FirstOrDefault(x => x.Name.Equals("src")); if (attribute != null) manga.ImageSource = HelperClass.CreateUrl(attribute.Value); }
private static void GetChapter(Manga manga, HtmlNode divNode) { var node = divNode.SelectSingleNode(".//a[name(parent::*)='span']"); var attribute = node.Attributes.FirstOrDefault(x => x.Name.Equals("title")); if (attribute != null) manga.Chapter = attribute.Value; }
private static void GetChapterLink(Manga manga, HtmlNode divNode) { var node = divNode.SelectSingleNode(".//a[name(parent::*)='span']"); var attribute = node.Attributes.FirstOrDefault(x => x.Name.Equals("href")); if (attribute != null) manga.CurrentChapter = new Chapter(HelperClass.CreateUrl(attribute.Value)); }
private static void GetDescription(Manga manga, HtmlNode divNode) { var node = divNode.SelectNodes(".//a[name(parent::*)='span']").LastOrDefault(); if (node != null) manga.SetDescription(node.InnerText); }
private static void GetTitle(Manga manga, HtmlNode divNode) { var node = divNode.SelectSingleNode(".//a"); var attribute = node.Attributes.FirstOrDefault(x => x.Name.Equals("title")); if (attribute != null) manga.Title = attribute.Value; }