private void CheckItem(BlogIndexItem item) { if (!CheckHistory(item)) { processContent(item); } }
private bool CheckHistory(BlogIndexItem item) { foreach (string title in history) { if (title == item.Title) { return(true); } } return(false); }
private void processContent(BlogIndexItem item) { string content = BlogFunUtlity.GetURLContents(item.URL); Match artical = regContent.Match(content); string result = artical.Groups[1].Value; List <ContentSem> markList = new List <ContentSem>(); MatchCollection mc = regImage.Matches(result); foreach (Match imgItem in mc) { if (imgItem.Groups[1].Value.StartsWith("http:")) { ContentSem cs = new ContentSem("img", imgItem.Groups[1].Index, imgItem.Groups[1].Length, imgItem.Groups[1].Value); markList.Add(cs); } } mc = regCode.Matches(result); foreach (Match codeItem in mc) { ContentSem cs = new ContentSem("code", codeItem.Groups[0].Index, codeItem.Groups[0].Length, codeItem.Groups[0].Value); if (regImage.IsMatch(cs.Content)) { ; } else { markList.Add(cs); } } StringBuilder buffer = new StringBuilder(); if (markList.Count > 0) { IEnumerable <ContentSem> orderList = markList.OrderBy(c => c.Index); ProcessImageCode(orderList); int index = 0; foreach (var listItem in orderList) { buffer.Append(result.Substring(index, listItem.Index - index)); buffer.Append(listItem.Content); index = listItem.Index + listItem.Length; } buffer.Append(result.Substring(index, result.Length - index)); } else { buffer.Append(result); } string PostContent = buffer.ToString(); Post CsdnPost = new Post(); CsdnPost.Title = item.Title; CsdnPost.Content = PostContent; lock (csdnPostQueue) { csdnPostQueue.Enqueue(CsdnPost); } Console.WriteLine("Processing {0} Done.", item.URL); }