Guest User

Untitled

a guest
Dec 17th, 2018
81
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.03 KB | None | 0 0
  1. private SerialPreviewViewModel[] GetSerials(params IHtmlCollection<IElement>[] dataElements)
  2. {
  3. // Обрабока коллекций циклом
  4. return new SerialPreviewViewModel[] { };
  5. }
  6.  
  7. public async Task<IPageModel> LoadPageAsync(Uri pageUrl)
  8. {
  9. IDocument document = await LoadStreamAsync(pageUrl);
  10. IElement content = document.QuerySelector("div#dle-content");
  11. IPaginatorModel paginator = GetPaginator(content.QuerySelector("div.navi"));
  12.  
  13. IHtmlCollection<IElement> postContentTitles = content.QuerySelectorAll("div.newstitle");
  14. IHtmlCollection<IElement> postContentInfo = content.QuerySelectorAll("div.newsinfo");
  15. IHtmlCollection<IElement> postContentShort = content.QuerySelectorAll("div.news_short");
  16.  
  17. PageModel result = new PageModel
  18. (
  19. new TaskCommand(async () => await LoadPageAsync(pageUrl)),
  20. paginator,
  21. GetSerials(postContentTitles, postContentInfo, postContentShort)
  22. );
  23.  
  24. return await Task.FromResult(result);
  25. }
  26.  
  27. private static IPaginatorModel GetPaginator(IParentNode element)
  28. {
  29. IHtmlCollection<IElement> paginatorData = element.QuerySelectorAll(".navigation > *");
  30. int[] paginatorPagesList = new int[paginatorData.Length];
  31.  
  32. for (int i = 0; i < paginatorData.Length; i++)
  33. {
  34. IElement currentElement = paginatorData[i];
  35.  
  36. paginatorPagesList[i] = currentElement.TagName == "A"
  37. ? int.Parse(paginatorData[i].Text())
  38. : currentElement.TagName == "SPAN" && currentElement.ClassName == "nav_ext"
  39. ? 0
  40. : -int.Parse(paginatorData[i].Text());
  41. }
  42.  
  43. return new PaginatorModel(Math.Abs(paginatorPagesList.First(i => Math.Abs(i) > 0)),
  44. paginatorPagesList.Select(Math.Abs).ToArray());
  45. }
  46.  
  47. div.newstitle, newsinfo, div.news_short
  48.  
  49. var result = new
  50. {
  51. postContentTitles = content.QuerySelectorAll("div.newstitle"),
  52. ostContentInfo = content.QuerySelectorAll("div.newsinfo"),
  53. postContentShort = content.QuerySelectorAll("div.news_short")
  54. };
Add Comment
Please, Sign In to add comment