public static ChapterData getChapters(Source source, string link) { ChapterData chapter = new ChapterData(); var web = new HtmlAgilityPack.HtmlWeb(); web.AutoDetectEncoding = true; var htmlpage1 = web.Load(link); var pages = new List<IObservable<HtmlDocument>>(); pages.Add(Observable.Return(htmlpage1)); var linksToPages = htmlpage1.DocumentNode.SelectNodes(@"/html/body/section[@class='readpage_top']/div[@class='go_page clearfix']/span[@class='right']/select[@class='wid60']/option"); for (int i = 1; i < linksToPages.Count; i++) { var linkToPage=linksToPages[i].GetAttributeValue("value", ""); pages.Add(Observable.Start<HtmlDocument>( ()=>{ var web2 = new HtmlAgilityPack.HtmlWeb(); web.AutoDetectEncoding = true; return htmlpage1 = web.Load(linkToPage); } )); } foreach (IObservable<HtmlDocument> item in pages) { HtmlDocument pagehtml = item.Wait(); chapter.Images.Add(pagehtml.DocumentNode.SelectSingleNode(@"/html/body/section[@id='viewer']/a/img[@id='image']/@src").GetAttributeValue("src","")) ; } return chapter; }
public static ChapterData getChapters(Source source, string link) { ChapterData chapter = new ChapterData(); var web = new HtmlAgilityPack.HtmlWeb(); web.AutoDetectEncoding = true; var htmlpage1 = web.Load(link); var pages = new List<IObservable<HtmlDocument>>(); pages.Add(Observable.Return(htmlpage1)); var linksToPages = htmlpage1.DocumentNode.SelectNodes(@"//*[@id='pageMenu']/option"); for (int i = 1; i < linksToPages.Count; i++) { var linkToPage ="http://www.mangareader.net"+ linksToPages[i].GetAttributeValue("value", ""); pages.Add(Observable.Start<HtmlDocument>( () => { var web2 = new HtmlAgilityPack.HtmlWeb(); web.AutoDetectEncoding = true; return htmlpage1 = web.Load(linkToPage); } )); } foreach (IObservable<HtmlDocument> item in pages) { HtmlDocument pagehtml = item.Wait(); chapter.Images.Add(pagehtml.DocumentNode.SelectSingleNode(@"//*[@id='img']").GetAttributeValue("src", "")); } return chapter; }
public ChapterFromSource(MangaFomSource owner, ChapterData chapterData) { this.Name = chapterData.Name; this.Source = chapterData.ChapterSource; Owner = owner; GetChapterCmd = new ReactiveAsyncCommand(); GetChapterCmd.RegisterAsyncAction(o => Get()); GetChapterCmd.ThrownExceptions.Subscribe(o => global::System.Windows.MessageBox.Show(o.Message)); GoToLinkCmd = new ReactiveCommand(); GoToLinkCmd.Subscribe((o) => { App.Controller.NavigateTo(Source.Link); }); }
public static IEnumerable<MangaData> getNews(Source source) { var web = new HtmlAgilityPack.HtmlWeb(); web.AutoDetectEncoding = true; var htmlMainDoc = web.Load(@"http://www.mangahere.com/latest/"); var itemsManga = htmlMainDoc.DocumentNode.SelectNodes(@"/html/body/section[@class='page_main']/div[@class='latest_released']/div[@class='manga_updates']/dl"); for (int i = itemsManga.Count-1; i >+0; i--) { var itemManga = itemsManga[i]; MangaData manga = new MangaData(source, true); var mangaNode = itemManga.SelectSingleNode(@"dt"); var mangaName = mangaNode.SelectSingleNode("a").InnerHtml; var mangaDetailLink = mangaNode.SelectSingleNode("a").GetAttributeValue("href", ""); manga.DetailMangaSource = source.CreateDetailMangaSource(manga, mangaDetailLink); manga.Name = mangaName; foreach (var itemChapter in itemManga.SelectNodes("dd")) { ChapterData chapter = new ChapterData(); //var matches = Regex.Matches(itemChapter.SelectSingleNode("a").InnerText, @"\d+"); //var chapterName = matches[matches.Count - 1].Value; var chapterName = itemChapter.SelectSingleNode("a").InnerText; var chapterLink = itemChapter.SelectSingleNode("a").GetAttributeValue("href", ""); chapter.Name = chapterName; chapter.ChapterSource = source.CreateChapterSource(chapterLink); manga.ChaptersData.Add(chapter); } yield return manga; } }
public static IEnumerable<MangaData> getNews(Source source) { var web = new HtmlAgilityPack.HtmlWeb(); web.AutoDetectEncoding = true; var htmlMainDoc = web.Load(@"http://www.mangareader.net/latest"); var itemsManga = htmlMainDoc.DocumentNode.SelectNodes(@"/html/body/div[@id='container']/div[@id='wrapper_body']/div[@id='latest']/div[@id='latestchapters']/table[@class='updates']/tr[@class='c2']"); for (int i = itemsManga.Count-1; i >=0; i--) { var itemManga = itemsManga[i]; MangaData manga = new MangaData(source,true); var mangaNode = itemManga.SelectSingleNode(@"td[2]/a[@class='chapter']"); var mangaName = mangaNode.InnerText; var mangaDetailLink = "http://www.mangareader.net" + mangaNode.GetAttributeValue("href", ""); manga.DetailMangaSource = source.CreateDetailMangaSource(manga, mangaDetailLink); manga.Name = mangaName; foreach (var itemChapter in itemManga.SelectNodes(@"td[2]/a[@class='chaptersrec']")) { ChapterData chapter = new ChapterData(); //// ////var matches = Regex.Matches(itemChapter.SelectSingleNode("a").InnerText, @"\d+"); //// ////var chapterName = matches[matches.Count - 1].Value; var chapterName = itemChapter.InnerText; var chapterLink = "http://www.mangareader.net" + itemChapter.GetAttributeValue("href", ""); chapter.Name = chapterName; chapter.ChapterSource = source.CreateChapterSource(chapterLink); manga.ChaptersData.Add(chapter); } yield return manga; } }