Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- private SerialPreviewViewModel[] GetSerials(params IHtmlCollection<IElement>[] dataElements)
- {
- // Обрабока коллекций циклом
- return new SerialPreviewViewModel[] { };
- }
- public async Task<IPageModel> LoadPageAsync(Uri pageUrl)
- {
- IDocument document = await LoadStreamAsync(pageUrl);
- IElement content = document.QuerySelector("div#dle-content");
- IPaginatorModel paginator = GetPaginator(content.QuerySelector("div.navi"));
- IHtmlCollection<IElement> postContentTitles = content.QuerySelectorAll("div.newstitle");
- IHtmlCollection<IElement> postContentInfo = content.QuerySelectorAll("div.newsinfo");
- IHtmlCollection<IElement> postContentShort = content.QuerySelectorAll("div.news_short");
- PageModel result = new PageModel
- (
- new TaskCommand(async () => await LoadPageAsync(pageUrl)),
- paginator,
- GetSerials(postContentTitles, postContentInfo, postContentShort)
- );
- return await Task.FromResult(result);
- }
- private static IPaginatorModel GetPaginator(IParentNode element)
- {
- IHtmlCollection<IElement> paginatorData = element.QuerySelectorAll(".navigation > *");
- int[] paginatorPagesList = new int[paginatorData.Length];
- for (int i = 0; i < paginatorData.Length; i++)
- {
- IElement currentElement = paginatorData[i];
- paginatorPagesList[i] = currentElement.TagName == "A"
- ? int.Parse(paginatorData[i].Text())
- : currentElement.TagName == "SPAN" && currentElement.ClassName == "nav_ext"
- ? 0
- : -int.Parse(paginatorData[i].Text());
- }
- return new PaginatorModel(Math.Abs(paginatorPagesList.First(i => Math.Abs(i) > 0)),
- paginatorPagesList.Select(Math.Abs).ToArray());
- }
- div.newstitle, newsinfo, div.news_short
- var result = new
- {
- postContentTitles = content.QuerySelectorAll("div.newstitle"),
- ostContentInfo = content.QuerySelectorAll("div.newsinfo"),
- postContentShort = content.QuerySelectorAll("div.news_short")
- };
Add Comment
Please, Sign In to add comment