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; } }
public MangaFomSource(Manga owner,MangaData mangaData) { Owner = owner; _Chapters = new ObservableCollection<ChapterFromSource>(); Chapters = new ReadOnlyObservableCollection<ChapterFromSource>(_Chapters); Name = mangaData.Name; Source = mangaData.DetailMangaSource; foreach (var chapterData in mangaData.ChaptersData) { _Chapters.Add(new ChapterFromSource(this,chapterData)); } }
public void MergeData(MangaData mangaData) { if (mangaData.IsInformationPartial == true) { } else { _Chapters.Clear(); foreach (var chapterData in mangaData.ChaptersData) { _Chapters.Add(new ChapterFromSource(this, chapterData)); } } }
public static MangaData getDetailManga(Source source, string link) { var web = new HtmlAgilityPack.HtmlWeb(); web.AutoDetectEncoding = true; var htmlMainDoc = web.Load(link); MangaData manga = new MangaData(source, false); foreach (HtmlNode itemChapter in htmlMainDoc.DocumentNode.SelectNodes(@"/html/body/section[@id='main']/article[@class='widscreen left']/div[@class='mr316']/div[@class='manga_detail']/div[@class='detail_list']/ul[1]/li/span[@class='left']/a[@class='color_0077']")) { var pageLink = itemChapter.GetAttributeValue("href", ""); var pageName = itemChapter.InnerText.Substring(16).Replace("\t", ""); manga.ChaptersData.Add(new ChapterData { Name = pageName ,ChapterSource= new ChapterSource(source,pageLink)}); } return manga; }
public static IEnumerable<MangaData> getMangas(Source source) { var web = new HtmlAgilityPack.HtmlWeb(); web.AutoDetectEncoding = true; var htmlMainDoc = web.Load(@"http://www.mangahere.com/mangalist/"); var itemsManga= htmlMainDoc.DocumentNode.SelectNodes(@"/html/body/section[@class='main clearfix']/div[@class='nopic_list clearfix']/div[@class='list_manga'][1]/ul/li/a[@class='manga_info']"); foreach (var itemManga in itemsManga) { MangaData manga = new MangaData(source, true); var mangaName = itemManga.GetAttributeValue("rel", ""); ; var mangaDetailLink = itemManga.GetAttributeValue("href", ""); manga.DetailMangaSource = source.CreateDetailMangaSource(manga, mangaDetailLink); manga.Name = mangaName; yield return manga; } }
public static MangaData getDetailManga(Source source, string link) { var web = new HtmlAgilityPack.HtmlWeb(); web.AutoDetectEncoding = true; var htmlMainDoc = web.Load(link); var q = htmlMainDoc.DocumentNode.SelectNodes(@"/html"); MangaData m = new MangaData(source, false); var itemsChapter = htmlMainDoc.DocumentNode.SelectNodes(@"/html/body/div[@id='container']/div[@id='wrapper_body']/div[@id='chapterlist']/table[@id='listing']/tr/td[1]/a"); for (int i = itemsChapter.Count - 1; i >= 0; i--) { var itemChapter = itemsChapter[i]; var pageLink = "http://www.mangareader.net" + itemChapter.GetAttributeValue("href", ""); var pageName = itemChapter.InnerText; m.ChaptersData.Add(new ChapterData { Name = pageName, ChapterSource = new ChapterSource(source, pageLink) }); m.IsInformationPartial = false; } return m; }
public void Add(MangaData mangaData) { MangaFomSource mangaFS = (from s in _MangaFromSources where s.Source.Name == mangaData.Source.Name select s).FirstOrDefault(); if (mangaFS == null) { _MangaFromSources.Add(new MangaFomSource(this, mangaData)); } else { mangaFS.MergeData(mangaData); } }
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 DetailMangaSource(Source source, MangaData manga, string link) { _Source = source; _Manga = manga; this._Link = link; }
public void Add(String Name, MangaData mangaData) { Manga manga = (from m in _Mangas where m.Name == Name select m).FirstOrDefault<Manga>(); if (manga == null) { manga = new Manga(cmpt,this, Name); cmpt++; _Mangas.Add(manga); } manga.Add(mangaData); }
public DetailMangaSource CreateDetailMangaSource(MangaData manga,String link) { return new DetailMangaSource(this,manga, link); }