public List <Chapter> GetChapterList(int NovelId) { using (CrawelNovelDbContext context = new CrawelNovelDbContext()) { return(context.Chapter.Where(c => c.NoteBookId.Equals(NovelId)).ToList()); } }
private void UpdateNovel(Catalog log, HtmlDocument doc) { col = null; using (CrawelNovelDbContext context = new CrawelNovelDbContext()) { string MaxUrl = string.Empty; if (rbBQG.Checked) { MaxUrl = context.Chapter.Where(c => c.NoteBookId.Equals(log.Id)).Max(c => c.ChapterUrl); } else { MaxUrl = context.Chapter.Where(c => c.NoteBookId.Equals(log.Id)).Min(c => c.ChapterUrl); } var chap = context.Chapter.FirstOrDefault(f => f.ChapterUrl.Equals(MaxUrl)); col = doc.DocumentNode.SelectNodes("//dd"); if (rbJPXS.Checked) { col.RemoveAt(0); col.RemoveAt(col.Count - 1); } ProgressCount = col.Count; CataUrl = log.Url; CataId = log.Id; this.backgroundWorker1.RunWorkerAsync(chap); //运行backgroundWorker组件 } ProgressForm form = new ProgressForm(this.backgroundWorker1); //显示进度条窗体 form.ShowDialog(this); }
public Catalog GetCataLogByName(string NovelName) { using (CrawelNovelDbContext context = new CrawelNovelDbContext()) { return(context.Catalog.FirstOrDefault(c => c.NoteName.Equals(NovelName))); } }
public void SaveChapData(List <Chapter> chaps) { using (CrawelNovelDbContext context = new CrawelNovelDbContext()) { context.Chapter.AddRange(chaps); context.SaveChanges(); } }
public void UpdateCatalog(Catalog cata) { using (CrawelNovelDbContext context = new CrawelNovelDbContext()) { context.Catalog.Attach(cata); context.Entry(cata).Property("UpdateTime").IsModified = true; context.SaveChanges(); } }
public int SaveCatalog(Catalog cata) { int returnId = 0; using (CrawelNovelDbContext context = new CrawelNovelDbContext()) { context.Catalog.Add(cata); context.SaveChanges(); returnId = cata.Id; } return(returnId); }
private void btnUpdate_Click(object sender, EventArgs e) { this.backgroundWorker1.DoWork -= backgroundWorker1_DoWork; this.backgroundWorker1.RunWorkerCompleted -= backgroundWorker1_RunWorkerCompleted; this.backgroundWorker1.DoWork += backgroundWorker1_UpdateDoWork; this.backgroundWorker1.RunWorkerCompleted += this.backgroundWorker1_UpdateRunWorkerCompleted; List <Catalog> catas = null; using (CrawelNovelDbContext context = new CrawelNovelDbContext()) { catas = context.Catalog.ToList(); } HtmlDocument doc = new HtmlDocument(); foreach (var cata in catas) { if (cata.Url.Contains("jpxs")) { rbJPXS.Checked = true; } else { rbBQG.Checked = true; } string htmlContent = GetContent(cata.Url); doc.LoadHtml(htmlContent); DateTime LastTimeDt; if (rbBQG.Checked) { HtmlNode navInfo = doc.GetElementbyId("info"); HtmlNode navInfo1 = doc.DocumentNode.SelectSingleNode(navInfo.XPath + "/p[3]"); string LastTime = navInfo1.InnerText.Replace(" ", "").Replace("最后更新", "").Substring(1); LastTimeDt = DateTime.Parse(LastTime); } else { HtmlNode navInfo = doc.GetElementbyId("info"); HtmlNode navInfo1 = doc.DocumentNode.SelectSingleNode(navInfo.XPath + "/p[4]"); int StartIndex = navInfo1.InnerText.IndexOf('['); int LastIndex = navInfo1.InnerText.IndexOf(']'); string LastTime = navInfo1.InnerText.Substring(StartIndex, LastIndex - StartIndex).Replace(" ", "").Replace("最后更新", "").Substring(1); LastTimeDt = DateTime.Parse(LastTime); } if (cata.UpdateTime.HasValue) { if (LastTimeDt < cata.UpdateTime.Value) { continue; } } else { if (LastTimeDt < cata.CreateTime) { continue; } } UpdateNovel(cata, doc); cata.UpdateTime = DateTime.Now; UpdateCatalog(cata); } }