Exemplo n.º 1
0
        public override Chapter GetChapterInfo(string link)
        {
            lock (Lock4) {
                try {
                    OnProcessingProgress(new ProcessingEventArgs(DateTime.Now, $"Abrindo Internet Explorer"));
                    var driver     = BrowserHelper.GetPhantomMobile(link);
                    var pageSource = driver.PageSource;
                    OnProcessingProgress(new ProcessingEventArgs(DateTime.Now, $"Pegando dados da página"));
                    IDocument leitor  = HtmlHelper.GetSourceCodeFromHtml(pageSource);
                    var       chapter = new Chapter();

                    OnProcessingProgress(new ProcessingEventArgs(DateTime.Now, $"Pegando dados da página"));
                    if (leitor == null)
                    {
                        driver.Quit();
                        throw new Exception("Ocorreu um erro ao buscar informaçoes do capitulo");
                    }
                    var titleChap    = leitor.QuerySelector("div.barra-titulo div.title-container div.title");
                    var title        = titleChap?.QuerySelector("span.name")?.TextContent;
                    var chap         = titleChap?.QuerySelector("span.chap")?.TextContent;
                    var chapterTitle = $"{title} - {chap}";
                    OnProcessingProgress(new ProcessingEventArgs(DateTime.Now, $"Buscando informações de {chapterTitle}"));
                    chapter.Title = chapterTitle;
                    chapter.Link  = link;
                    List <Page> pageList = GetPageList(driver);
                    if (pageList.Count() > 1)
                    {
                        chapter.Pages = pageList;
                    }
                    else
                    {
                        driver.Quit();
                        throw new Exception("Ocorreu um erro ao buscar informaçoes do capitulo");
                    }
                    driver.Quit();
                    OnProcessingProgress(new ProcessingEventArgs(DateTime.Now, $"Tudo pronto"));
                    return(chapter);
                } catch (Exception e) {
                    OnProcessingProgressError(new ProcessingErrorEventArgs(DateTime.Now, link, e));
                    return(null);
                }
            }
        }