Exemple #1
0
        public List <Chapter> GetListChapters(String link)
        {
            lock (Lock5) {
                OnProcessingProgress(new ProcessingEventArgs(DateTime.Now, $"Buscando capitulos"));
                var chapterList = new List <Chapter>();
                var driver      = BrowserHelper.GetDriver(link);
                var pageSource  = driver.PageSource;
                OnProcessingProgress(new ProcessingEventArgs(DateTime.Now, $"Pegando dados da página"));
                IDocument leitor = HtmlHelper.GetSourceCodeFromHtml(pageSource);
                driver.Quit();

                if (leitor == null)
                {
                    return(chapterList);
                }
                var chapters = leitor.QuerySelectorAll("#chapter-selection-dropdown div.selection div a");
                if (chapters != null)
                {
                    foreach (var chapter in chapters)
                    {
                        var chapterLink  = $"{BaseAdress}{chapter.GetAttribute("href")}";
                        var chapterTitle = $"Capitulo - {chapter.QuerySelector("span.chapter")?.TextContent.Replace("Cap. ", "")}";
                        chapterList.Add(new Chapter {
                            Title = chapterTitle, Link = chapterLink
                        });
                    }
                }

                return(chapterList);
            }
        }
 public override List <Update> GetUpdates(string url)
 {
     lock (Lock7) {
         try {
             OnProcessingProgress(new ProcessingEventArgs(DateTime.Now, $"Buscando Atualizações..."));
             var driver     = BrowserHelper.GetDriver(url);
             var pageSource = driver.PageSource;
             OnProcessingProgress(new ProcessingEventArgs(DateTime.Now, $"Pegando dados da página"));
             IDocument source = HtmlHelper.GetSourceCodeFromHtml(pageSource);
             driver.Quit();
             var updates = new List <Update>();
             if (source == null)
             {
                 throw new Exception("Ocorreu um erro ao buscar informaçoes da Hq");
             }
             var updatesEl = source.QuerySelectorAll(".table-lancamentos tr");
             OnProcessingProgress(new ProcessingEventArgs(DateTime.Now, $"{updatesEl.Count()} mangas encontrados!"));
             foreach (var update in updatesEl)
             {
                 var title = update.QuerySelector("td h3.entry-title")?.TextContent;
                 if (!string.IsNullOrEmpty(title))
                 {
                     title = title.Replace("(BR)", "").Trim();
                     title = title.Replace("(PT-BR)", "").Trim();
                     title = title.Replace("(Novel)", "").Trim();
                     title = title.Replace("(Manhwa)", "").Trim();
                     title = title.Replace("(Manhua)", "").Trim();
                     var img        = update.QuerySelector("td a img.manga")?.GetAttribute("src");
                     var link       = update.QuerySelector("td h3.entry-title a")?.GetAttribute("href");
                     var chaptersEl = update.QuerySelectorAll(".chapters a.btn");
                     if (!string.IsNullOrEmpty(link))
                     {
                         var chapters = new List <Chapter>();
                         foreach (var chap in chaptersEl)
                         {
                             var chapterTitle = chap.GetAttribute("title");
                             var chapterLink  = chap.GetAttribute("href");
                             chapters.Add(new Chapter {
                                 Link = chapterLink, Title = chapterTitle
                             });
                         }
                         var up = new Update {
                             Hq = new Hq {
                                 Link = link, Title = title, CoverSource = img
                             },
                             Chapters = chapters
                         };
                         updates.Add(up);
                         OnProcessingProgress(new ProcessingEventArgs(DateTime.Now, up.Hq, $"{title} Adicionado"));
                     }
                 }
             }
             OnProcessingProgress(new ProcessingEventArgs(DateTime.Now, $"Tudo pronto"));
             return(updates);
         } catch (Exception e) {
             OnProcessingProgressError(new ProcessingErrorEventArgs(DateTime.Now, url, e));
             return(null);
         }
     }
 }
Exemple #3
0
        public override Chapter GetChapterInfo(string link)
        {
            lock (Lock4) {
                try {
                    OnProcessingProgress(new ProcessingEventArgs(DateTime.Now, $"Abrindo Internet Explorer"));
                    var driver     = BrowserHelper.GetDriver(link);
                    var pageSource = driver.PageSource;
                    Task.Delay(5000);
                    var token = pageSource.Substring(pageSource.IndexOf("reader.min.js"));
                    token = token.Substring(token.IndexOf("token"));
                    token = token.Substring(0, token.IndexOf("id_release"));
                    token = token.Substring(0, token.Length - 5);
                    token = token.Replace("token=", "");
                    OnProcessingProgress(new ProcessingEventArgs(DateTime.Now, $"Pegando dados da página"));
                    IDocument leitor  = HtmlHelper.GetSourceCodeFromHtml(pageSource);
                    var       tes     = leitor.QuerySelectorAll(".requests");
                    var       chapter = new Chapter();

                    OnProcessingProgress(new ProcessingEventArgs(DateTime.Now, $"Pegando dados da página"));
                    if (leitor == null)
                    {
                        driver.Quit();
                        BrowserHelper.CloseDriver();
                        throw new Exception("Ocorreu um erro ao buscar informaçoes do capitulo");
                    }

                    var title        = leitor.QuerySelector(".series-info .series-title .title")?.TextContent;
                    var chap         = leitor.QuerySelector(".chapter-selection .current-chapter")?.TextContent;
                    var chapterTitle = $"{title} - {chap}";
                    chapterTitle = CleanTitle(chapterTitle);
                    OnProcessingProgress(new ProcessingEventArgs(DateTime.Now, $"Buscando informações de {chapterTitle}"));
                    chapter.Title = CleanTitle(chapterTitle);
                    chapter.Link  = link;
                    List <Page> pageList = GetPageList(link, token);
                    if (pageList.Count() > 1)
                    {
                        chapter.Pages = pageList;
                    }
                    else
                    {
                        driver.Quit();
                        BrowserHelper.CloseDriver();
                        throw new Exception("Ocorreu um erro ao buscar informaçoes do capitulo");
                    }
                    driver.Quit();
                    BrowserHelper.CloseDriver();
                    OnProcessingProgress(new ProcessingEventArgs(DateTime.Now, $"Tudo pronto"));
                    return(chapter);
                } catch (Exception e) {
                    BrowserHelper.CloseDriver();
                    OnProcessingProgressError(new ProcessingErrorEventArgs(DateTime.Now, link, e));
                    return(null);
                }
            }
        }
Exemple #4
0
        public override Hq GetHqInfo(string link)
        {
            lock (Lock3) {
                try {
                    Uri site = new Uri(link);
                    BaseAdress = $"{site.Scheme}://{site.Host}";

                    var driver = BrowserHelper.GetDriver(link);
                    //Task.Delay(5000).Wait();
                    var pageSource = driver.PageSource;
                    OnProcessingProgress(new ProcessingEventArgs(DateTime.Now, $"Pegando dados da página"));
                    IDocument source = HtmlHelper.GetSourceCodeFromHtml(pageSource);
                    driver.Quit();

                    var hqInfo = new Hq();

                    OnProcessingProgress(new ProcessingEventArgs(DateTime.Now, $"Pegando dados da página"));
                    if (source == null)
                    {
                        throw new Exception("Ocorreu um erro ao buscar informaçoes da Hq");
                    }
                    var title = source.QuerySelector("div#series-data div.series-info span.series-title h1")?.TextContent;
                    title = title.Replace("(BR)", "").Trim();
                    title = title.Replace("(PT-BR)", "").Trim();
                    title = title.Replace("(Novel)", "").Trim();
                    title = title.Replace("(Manhwa)", "").Trim();
                    title = title.Replace("(Manhua)", "").Trim();
                    OnProcessingProgress(new ProcessingEventArgs(DateTime.Now, $"Buscando informações de {title}"));
                    var img      = source.QuerySelector("div.series-img div.cover img");
                    var author   = source.QuerySelector("div#series-data div.series-info span.series-author")?.TextContent;
                    var synopsis = source.QuerySelector("div#series-data div.series-info span.series-desc")?.TextContent;
                    hqInfo.Title       = title;
                    hqInfo.Author      = author.Replace("\n", "").Trim();
                    hqInfo.CoverSource = img?.GetAttribute("src");
                    hqInfo.Synopsis    = synopsis.Replace("\n", "").Trim();
                    hqInfo.Link        = link;
                    var lastchapter = source.QuerySelector("#chapter-list .list-of-chapters li a");
                    var chapters    = GetListChapters($"{BaseAdress}{lastchapter?.GetAttribute("href")}").Reverse <Chapter>().ToList();
                    hqInfo.Chapters = chapters;

                    OnProcessingProgress(new ProcessingEventArgs(DateTime.Now, $"Tudo pronto!"));
                    return(hqInfo);
                } catch (Exception e) {
                    OnProcessingProgressError(new ProcessingErrorEventArgs(DateTime.Now, link, e));
                    return(null);
                }
            }
        }
Exemple #5
0
        public override Hq GetHqInfo(string link)
        {
            lock (Lock3) {
                try {
                    OnProcessingProgress(new ProcessingEventArgs(DateTime.Now, $"Pegando dados da página"));
                    var driver     = BrowserHelper.GetDriver(link);
                    var pageSource = driver.PageSource;
                    OnProcessingProgress(new ProcessingEventArgs(DateTime.Now, $"Pegando dados da página"));
                    IDocument source = HtmlHelper.GetSourceCodeFromHtml(pageSource);
                    OnProcessingProgress(new ProcessingEventArgs(DateTime.Now, $"Pegando dados da página"));
                    driver.Quit();
                    var hqInfo = new Hq();
                    if (source == null)
                    {
                        throw new Exception("Ocorreu um erro ao buscar informaçoes da Hq");
                    }
                    var title = source.QuerySelector("h1.title")?.TextContent;
                    title = title.Replace("(BR)", "").Trim();
                    title = title.Replace("(PT-BR)", "").Trim();
                    title = title.Replace("(Novel)", "").Trim();
                    title = title.Replace("(Manhwa)", "").Trim();
                    title = title.Replace("(Manhua)", "").Trim();
                    var img      = source.QuerySelector("#descricao img");
                    var synopsis = source.QuerySelector("#descricao article")?.TextContent;
                    OnProcessingProgress(new ProcessingEventArgs(DateTime.Now, $"Buscando informações de {title}"));
                    hqInfo.Title       = title;
                    hqInfo.CoverSource = img?.GetAttribute("src");
                    hqInfo.Synopsis    = synopsis.Replace("\n", "").Trim();
                    hqInfo.Link        = link; var hqInfos = source.QuerySelectorAll("#descricao div.content ul li");
                    foreach (var info in hqInfos)
                    {
                        if (info.TextContent.Contains("Autor"))
                        {
                            hqInfo.Author = info.TextContent.Replace("Autor:", "").Trim();
                        }
                    }
                    var chapters = GetListChapters(source).Reverse <Chapter>().ToList();
                    hqInfo.Chapters = chapters;

                    OnProcessingProgress(new ProcessingEventArgs(DateTime.Now, $"Tudo pronto!"));
                    return(hqInfo);
                } catch (Exception e) {
                    OnProcessingProgressError(new ProcessingErrorEventArgs(DateTime.Now, link, e));
                    return(null);
                }
            }
        }
 public override Chapter GetChapterInfo(string link)
 {
     lock (Lock2) {
         try {
             Site = new Uri(link);
             OnProcessingProgress(new ProcessingEventArgs(DateTime.Now, $"Pegando dados da página"));
             IDocument leitor  = HtmlHelper.GetSourceCodeFromUrl(link);
             var       chapter = new Chapter();
             if (leitor == null)
             {
                 throw new Exception("Ocorreu um erro ao buscar informaçoes da Hq");
             }
             var chapterTitle = leitor.QuerySelector(".main-container .title")?.TextContent.Trim();
             OnProcessingProgress(new ProcessingEventArgs(DateTime.Now, $"Buscando informações de {chapterTitle}"));
             chapterTitle  = CleanTitle(chapterTitle);
             chapter.Title = chapterTitle;
             chapter.Link  = link;
             var pages = GetPageList(leitor);
             if (pages.Count <= 2)
             {
                 UsingIe = true;
                 var driver     = BrowserHelper.GetDriver(link);
                 var pageSource = driver.PageSource;
                 OnProcessingProgress(new ProcessingEventArgs(DateTime.Now, $"Pegando dados da página"));
                 leitor = HtmlHelper.GetSourceCodeFromHtml(pageSource);
                 pages  = GetPageList(leitor);
                 driver.Quit();
                 UsingIe = false;
             }
             chapter.Pages = pages;
             OnProcessingProgress(new ProcessingEventArgs(DateTime.Now, $"Tudo pronto"));
             return(chapter);
         } catch (Exception e) {
             OnProcessingProgressError(new ProcessingErrorEventArgs(DateTime.Now, link, e));
             return(null);
         }
     }
 }
 public override LibraryPage GetLibrary(String linkPage)
 {
     lock (Lock2) {
         try {
             OnProcessingProgress(new ProcessingEventArgs(DateTime.Now, $"Buscando Biblioteca..."));
             var driver     = BrowserHelper.GetDriver(linkPage);
             var pageSource = driver.PageSource;
             OnProcessingProgress(new ProcessingEventArgs(DateTime.Now, $"Pegando dados da página"));
             IDocument source = HtmlHelper.GetSourceCodeFromHtml(pageSource);
             OnProcessingProgress(new ProcessingEventArgs(DateTime.Now, $"Pegando dados da página"));
             driver.Quit();
             BrowserHelper.CloseDriver();
             var hqs = new List <Hq>();
             if (source == null)
             {
                 throw new Exception("Ocorreu um erro ao buscar informaçoes da Hq");
             }
             var hqsEl = source.QuerySelectorAll("#mangas .two");
             OnProcessingProgress(new ProcessingEventArgs(DateTime.Now, $"{hqsEl.Count()} mangas encontrados!"));
             var nextPage      = source.QuerySelector("#mangas a.next")?.GetAttribute("href");
             var finalizadosEl = source.QuerySelectorAll("#mangas ul.nav-tabs li a");
             var finalizedPage = "";
             foreach (var el in finalizadosEl)
             {
                 if (el.TextContent.Contains("Completos"))
                 {
                     finalizedPage = el.GetAttribute("href");
                 }
             }
             var lethers    = source.QuerySelectorAll("#mangas .letters a");
             var letherLink = new Dictionary <string, string>();
             foreach (var lether in lethers)
             {
                 letherLink[lether.TextContent] = lether.GetAttribute("href");
             }
             OnProcessingProgress(new ProcessingEventArgs(DateTime.Now, $"Preparando para retornar mangas!"));
             foreach (var hq in hqsEl)
             {
                 var title = hq.QuerySelector("h3")?.TextContent;
                 title = CleanTitle(title);
                 var img  = hq.QuerySelector("a img")?.GetAttribute("src");
                 var link = hq.QuerySelector("h3 a")?.GetAttribute("href");
                 if (!string.IsNullOrEmpty(link))
                 {
                     var manga = new Hq {
                         Link = link, Title = title, CoverSource = img
                     };
                     if (!hqs.Contains(manga))
                     {
                         hqs.Add(manga);
                         OnProcessingProgress(new ProcessingEventArgs(DateTime.Now, manga, $"{title} Adicionado"));
                     }
                 }
             }
             OnProcessingProgress(new ProcessingEventArgs(DateTime.Now, $"Tudo pronto"));
             return(new LibraryPage {
                 Link = linkPage, Hqs = hqs, NextPage = nextPage,
                 FinalizedPage = finalizedPage, Letras = letherLink
             });
         } catch (Exception e) {
             BrowserHelper.CloseDriver();
             OnProcessingProgressError(new ProcessingErrorEventArgs(DateTime.Now, linkPage, e));
             return(null);
         }
     }
 }
Exemple #8
0
        public override List <Update> GetUpdates(string url)
        {
            lock (Lock1) {
                try {
                    OnProcessingProgress(new ProcessingEventArgs(DateTime.Now, $"Buscando Atualizações..."));
                    Uri site = new Uri(url);
                    BaseAdress = $"{site.Scheme}://{site.Host}";
                    OnProcessingProgress(new ProcessingEventArgs(DateTime.Now, $"Abrindo Internet Explorer"));
                    var driver = BrowserHelper.GetDriver(url);

                    Task.Delay(20000).Wait();
                    var loadcMore = driver.FindElement(By.CssSelector("a.loadmore"));
                    loadcMore.Click();
                    Task.Delay(20000).Wait();
                    loadcMore.Click();
                    Task.Delay(20000).Wait();
                    var pageSource = driver.PageSource;
                    OnProcessingProgress(new ProcessingEventArgs(DateTime.Now, $"Pegando dados da página"));
                    IDocument source = HtmlHelper.GetSourceCodeFromHtml(pageSource);
                    driver.Quit();
                    var updates = new List <Update>();
                    if (source == null)
                    {
                        throw new Exception("Ocorreu um erro ao buscar informaçoes da Hq");
                    }
                    var updatesEl = source.QuerySelectorAll("div#recent_releases li");
                    OnProcessingProgress(new ProcessingEventArgs(DateTime.Now, $"{updatesEl.Count()} mangas encontrados!"));
                    foreach (var update in updatesEl)
                    {
                        var title = update.QuerySelector(".lancamento-title")?.TextContent;
                        if (!string.IsNullOrEmpty(title))
                        {
                            title = title.Replace("(BR)", "").Trim();
                            title = title.Replace("(PT-BR)", "").Trim();
                            title = title.Replace("(Novel)", "").Trim();
                            title = title.Replace("(Manhwa)", "").Trim();
                            title = title.Replace("(Manhua)", "").Trim();
                            var imgEl = update.QuerySelector(".cover-image")?.GetAttribute("style");
                            imgEl = imgEl?.Replace("background-image: url(", "");
                            imgEl = imgEl?.Replace(")", "");
                            imgEl = imgEl?.Replace("'", "");
                            imgEl = imgEl?.Replace("\"", "");
                            var img = imgEl?.Replace(";", "");
                            OnProcessingProgress(new ProcessingEventArgs(DateTime.Now, $"Pegando dados de {title}"));
                            var link = update.QuerySelector(".lancamento-desc a")?.GetAttribute("href");

                            var chaptersEl = update.QuerySelectorAll(".lancamento-list li a");
                            if (!string.IsNullOrEmpty(link))
                            {
                                var chapters = new List <Chapter>();
                                foreach (var chap in chaptersEl)
                                {
                                    var chapterTitle = chap.GetAttribute("title");
                                    var chapterLink  = chap.GetAttribute("href");
                                    chapters.Add(new Chapter {
                                        Link = $"{BaseAdress}{chapterLink}", Title = chapterTitle
                                    });
                                }
                                var up = new Update {
                                    Hq = new Hq {
                                        Link = $"{BaseAdress}{link}", Title = title, CoverSource = img
                                    },
                                    Chapters = chapters
                                };
                                updates.Add(up);
                                OnProcessingProgress(new ProcessingEventArgs(DateTime.Now, up.Hq, $"{title} Adicionado"));
                            }
                        }
                    }
                    OnProcessingProgress(new ProcessingEventArgs(DateTime.Now, $"Tudo pronto"));
                    return(updates);
                } catch (Exception e) {
                    OnProcessingProgressError(new ProcessingErrorEventArgs(DateTime.Now, url, e));
                    return(new List <Update>());
                }
            }
        }
Exemple #9
0
 public override LibraryPage GetLibrary(String linkPage)
 {
     lock (Lock2) {
         try {
             OnProcessingProgress(new ProcessingEventArgs(DateTime.Now, "Processando os Mangas..."));
             Uri site = new Uri(linkPage);
             BaseAdress = $"{site.Scheme}://{site.Host}";
             OnProcessingProgress(new ProcessingEventArgs(DateTime.Now, $"Abrindo Internet Explorer"));
             var driver     = BrowserHelper.GetDriver(linkPage);
             var pageSource = driver.PageSource;
             OnProcessingProgress(new ProcessingEventArgs(DateTime.Now, $"Pegando dados da página"));
             IDocument source = HtmlHelper.GetSourceCodeFromHtml(pageSource);
             driver.Quit();
             var hqs = new List <Hq>();
             if (source == null)
             {
                 throw new Exception("Ocorreu um erro ao buscar informaçoes da Hq");
             }
             var hqsEl = source.QuerySelectorAll(".content-wraper ul.seriesList li");
             OnProcessingProgress(new ProcessingEventArgs(DateTime.Now, $"{hqsEl.Count()} mangas encontrados!"));
             var nextPage      = source.QuerySelector("ul.content-pagination li.next a")?.GetAttribute("href");
             var finalizadosEl = source.QuerySelectorAll("#subtopnav ul#menu-titulos li a");
             OnProcessingProgress(new ProcessingEventArgs(DateTime.Now, $"Pegando links"));
             var finalizedPage = "";
             foreach (var el in finalizadosEl)
             {
                 var test = el.TextContent;
                 if (el.TextContent.Contains("Recém Finalizados"))
                 {
                     finalizedPage = el.GetAttribute("href");
                 }
             }
             var lethers    = source.QuerySelectorAll("#az-order div a");
             var letherLink = new Dictionary <string, string>();
             foreach (var lether in lethers)
             {
                 letherLink[lether.TextContent.Trim()] = $"{BaseAdress}{lether.GetAttribute("href")}";
             }
             OnProcessingProgress(new ProcessingEventArgs(DateTime.Now, $"Preparando para retornar mangas!"));
             foreach (var hq in hqsEl)
             {
                 var title = hq.QuerySelector(".series-title h1")?.TextContent;
                 title = title.Replace("(BR)", "").Trim();
                 title = title.Replace("(PT-BR)", "").Trim();
                 title = title.Replace("(Novel)", "").Trim();
                 title = title.Replace("(Manhwa)", "").Trim();
                 title = title.Replace("(Manhua)", "").Trim();
                 var imgEl = hq.QuerySelector(".cover-image")?.GetAttribute("style");
                 imgEl = imgEl?.Replace("background-image: url(", "");
                 imgEl = imgEl?.Replace(")", "");
                 imgEl = imgEl?.Replace("'", "");
                 imgEl = imgEl?.Replace("\"", "");
                 var img  = imgEl?.Replace(";", "");
                 var link = hq.QuerySelector("a")?.GetAttribute("href");
                 if (title != null)
                 {
                     OnProcessingProgress(new ProcessingEventArgs(DateTime.Now, $"Pegando dados de {title}"));
                     if (!img.Contains(site.Scheme))
                     {
                         img = $"{BaseAdress}{img}";
                     }
                     if (!string.IsNullOrEmpty(link))
                     {
                         var manga = new Hq {
                             Link = $"{BaseAdress}{link}", Title = title, CoverSource = img
                         };
                         if (!hqs.Contains(manga))
                         {
                             hqs.Add(manga);
                             OnProcessingProgress(new ProcessingEventArgs(DateTime.Now, manga, $"{title} Adicionado"));
                         }
                     }
                 }
             }
             OnProcessingProgress(new ProcessingEventArgs(DateTime.Now, $"Tudo pronto"));
             return(new LibraryPage {
                 Link = linkPage, Hqs = hqs, NextPage = $"{BaseAdress}{nextPage}",
                 FinalizedPage = $"{BaseAdress}{finalizedPage}", Letras = letherLink
             });
         } catch (Exception e) {
             OnProcessingProgressError(new ProcessingErrorEventArgs(DateTime.Now, linkPage, e));
             return(null);
         }
     }
 }
 public static void initialize(TestContext context)
 {
     Instance = BrowserHelper.GetDriver(context);
     Instance.Manage().Window.Maximize();
     //context.Properties["driver"] = Instance; storing the driver instance
 }