internal override IChapter[] GetChapters(Series Series, string SeriesPageHtml) { var Document = Parser.Parse(SeriesPageHtml); var Node = Document.QuerySelector("#updates"); var Nodes = Node.QuerySelectorAll("tr a"); var Timenodes = Node.QuerySelectorAll("td.time"); var Output = Nodes.Zip(Timenodes, (d, e) => new Chapter(Series, new Uri(RootUri, d.Attributes["href"].Value), d.TextContent) { Updated = e.TextContent.Trim() }).ToArray(); //Eatmanga has dummy entries for not yet released chapters, prune them. Output = Output.Where(d => d.FirstPageUri.ToString().Contains("http://eatmanga.com/upcoming/") == false).Reverse().ToArray(); return Output; }
internal override IChapter[] GetChapters(Series series, string seriesPageHtml) { var document = Parser.Parse(seriesPageHtml); var containerNode = document.QuerySelector("section.section-chapter div.container div.row:nth-child(2)"); var linkNodes = containerNode.QuerySelectorAll("div.col-xs-9").Skip(1).ToArray(); linkNodes = linkNodes.Select(d => d.QuerySelector("a")).ToArray(); var dateNodes = containerNode.QuerySelectorAll("div.col-xs-3").Skip(1).ToArray(); var output = linkNodes.Zip(dateNodes, (d, e) => new Chapter(series, new Uri(RootUri, d.Attributes["href"].Value), d.TextContent.Trim()) { Updated = e.TextContent.Trim() }) .Reverse().ToArray(); return output; }
internal override IChapter[] GetChapters(Series series, string seriesPageHtml) { var document = Parser.Parse(seriesPageHtml); var tableNode = document.QuerySelector("table.table-striped") as AngleSharp.Dom.Html.IHtmlTableElement; var rows = tableNode.QuerySelectorAll("tr").Skip(1); var output = rows.Select(d => { var linkNode = d.QuerySelector("a"); var datenode = d.QuerySelectorAll("td").Skip(1); var chapter = new Chapter(series, new Uri(linkNode.Attributes["href"].Value), linkNode.TextContent) { Updated = datenode.First().TextContent.Trim() }; return chapter; }).Reverse().ToArray(); return output; }
internal override ISeries[] GetDefaultSeries(string mangaIndexPageHtml) { var document = Parser.Parse(mangaIndexPageHtml); var containerNode = document.QuerySelector("div.container"); containerNode = containerNode.QuerySelector("div.row:nth-child(3)"); var seriesDivs = containerNode.QuerySelectorAll("div.col-md-2"); var output = seriesDivs.Select(d => { var linkNode = d.QuerySelector("a"); var titleNode = d.QuerySelector("div.manga-details"); var series = new Series(this, new Uri(RootUri, linkNode.Attributes["href"].Value), titleNode.TextContent.Trim()) { Updated = SeriesUpdatedValue }; return series; }).OrderBy(d => d.Title).ToArray(); return output; }
internal override IChapter[] GetChapters(Series series, string seriesPageHtml) { var document = Parser.Parse(seriesPageHtml); var table = document.QuerySelector("table"); var rows = table.QuerySelectorAll("tr").Skip(1); var output = rows.Select(d => { var linknode = d.QuerySelector("a.chapterLink"); var titleNode = linknode.QuerySelector("b"); var dateNode = d.QuerySelector("td.chapterDate"); var chapter = new Chapter(series, new Uri(RootUri, linknode.Attributes["href"].Value), titleNode.TextContent.Trim()) { Updated = dateNode.TextContent.Trim() }; return chapter; }).Reverse().ToArray(); return output; }
internal override IChapter[] GetChapters(Series Series, string SeriesPageHtml) { var Document = Parser.Parse(SeriesPageHtml); var Node = Document.QuerySelector("div.manga_detail"); Node = Node.QuerySelector("div.detail_list ul"); var Nodes = Node.QuerySelectorAll("a.color_0077"); var Output = Nodes.Select(d => { string Title = d.TextContent; Title = Regex.Replace(Title, @"^[\r\n\s\t]+", string.Empty); Title = Regex.Replace(Title, @"[\r\n\s\t]+$", string.Empty); var Chapter = new Chapter(Series, new Uri(RootUri, d.Attributes["href"].Value), Title); return Chapter; }).Reverse().ToArray(); return Output.ToArray(); }
internal override void GetSeriesInfo(Series series, string seriesPageHtml) { var document = Parser.Parse(seriesPageHtml); var imgNode = document.QuerySelector("div.mangaImage2 img"); series.CoverImageUri = new Uri(RootUri, imgNode.Attributes["src"].Value); var infoBoxNode = document.QuerySelectorAll("div.rightBox")[1]; var headerNodes = infoBoxNode.QuerySelectorAll("h4"); var yearHeader = headerNodes.First(d => d.TextContent == "Year of release"); series.Release = yearHeader.NextSibling.TextContent; var linkNodes = infoBoxNode.QuerySelectorAll("a").ToArray(); var authorNode = linkNodes.First(d => d.Attributes["href"].Value.Contains("?author=")); series.Author = authorNode.TextContent; var tagNodes = linkNodes.Where(d => d.Attributes["href"].Value.Contains("?categoriesInc=")).ToArray(); series.Tags = string.Join(", ", tagNodes.Select(d => d.TextContent)); var descriptionNode = document.QuerySelector("h2#mangaDescription"); series.Description = descriptionNode.TextContent.Trim(); }
internal override void GetSeriesInfo(Series Series, string SeriesPageHtml) { Series.Description = string.Empty; }
internal override void GetSeriesInfo(Series series, string seriesPageHtml) { var document = Parser.Parse(seriesPageHtml); var imageNode = document.QuerySelector("div.manga-cover center img"); series.CoverImageUri = new Uri(RootUri, imageNode.Attributes["src"].Value); var detailsNode = document.QuerySelector("div.manga-data"); var linkNodes = detailsNode.QuerySelectorAll("a").ToArray(); var headerNodes = detailsNode.QuerySelectorAll("b").ToArray(); var yearHeader = headerNodes.First(d => d.TextContent == "Year of Release: "); series.Release = yearHeader.NextSibling.TextContent; var authorHeader = headerNodes.First(d => d.TextContent == "Author: "); series.Author = authorHeader.NextSibling.TextContent; var tagNodes = linkNodes.Where(d => d.HasAttribute("href")).Where(d => d.Attributes["href"].Value.Contains("/manga-directory/")).ToArray(); series.Tags = string.Join(", ", tagNodes.Select(d => d.TextContent)); var descriptionHeader = headerNodes.First(d => d.TextContent == "Sypnosis: "); series.Description = descriptionHeader.NextSibling.NextSibling.TextContent.Trim(); }
internal override void GetSeriesInfo(Series series, string seriesPageHtml) { }
protected override Series[] GetSeriesFromSearch(string searchPageHtml) { var document = Parser.Parse(searchPageHtml); var table = document.QuerySelector("#mangaList"); var rows = table.QuerySelectorAll("tr").Skip(1).ToArray(); if (rows.Length == 1 && rows[0].TextContent.Contains("No results found")) { return new Series[0]; } var output = rows.Select(d => { var links = d.QuerySelectorAll("a"); var seriesLink = links.First(); var updatesLink = links.Last(); var updateText = updatesLink.TextContent.Replace('\n', ' ').Trim(); var series = new Series(this, new Uri(RootUri, seriesLink.Attributes["href"].Value), seriesLink.TextContent.Trim()) { Updated = updateText }; return series; }).OrderBy(d => d.Title).ToArray(); return output; }