public void GetLikesCount() { var url = "http://www.smashingmagazine.com/2014/12/10/mastering-fireworks-css-properties-panel-css-professionalzr/#comment-1252863"; var likesCount = Facebook.GetNumberOfLikes(url); var likesCountTw = Twitter.GetNumberOfTweets(url); var likesCountLi = LinkedIn.GetNumberOfShares(url); var likesCountGoo = Google.GetNumberOfShares(url); var likesCountRed = Reddit.GetNumberOfVotes(url); }
public void UpdateLikesCount() { var articles = new FeedService().GetArticlesWithoutBody(32997); foreach (var a in articles) { a.LikesCount = Facebook.GetNumberOfLikes(a.Url) + Twitter.GetNumberOfTweets(a.Url) + LinkedIn.GetNumberOfShares(a.Url) + Google.GetNumberOfShares(a.Url) + Reddit.GetNumberOfVotes(a.Url); new FeedService().UpdateArticle(a); } }
public void Parse(int id) { var lFeed = FeedService.GetFeed(id); if (lFeed == null) { return; } var rFeed = FeedService.GetRemoteFeed(lFeed.Url); if (rFeed == null) { lFeed.Updated = DateTime.Now; FeedService.UpdateFeed(lFeed); return; } lFeed.Articles = FeedService.GetArticles(lFeed.Id); var lTags = CacheClient.Default.GetOrAdd <List <Tag> > ("parsingLocalTags", CachePeriod.ForMinutes(15), () => FeedService.GetTagsByArticlesCount(100)); foreach (var rArticle in rFeed.Articles) { rArticle.Tags = GetArticleTags(rArticle, lTags); try { var lArticle = lFeed.Articles.Find(le => le.Name == rArticle.Name); if (lArticle == null) { rArticle.FeedId = lFeed.Id; rArticle.LikesCount = Facebook.GetNumberOfLikes(rArticle.Url) + Twitter.GetNumberOfTweets(rArticle.Url) + LinkedIn.GetNumberOfShares(rArticle.Url) + Google.GetNumberOfShares(rArticle.Url) + Reddit.GetNumberOfVotes(rArticle.Url); rArticle.Tags = GetArticleTags(rArticle, lTags); rArticle.Id = FeedService.InsertArticle(rArticle); rArticle.Feed = lFeed; LuceneSearch.AddUpdateIndex(rArticle); } } catch (Exception ex) { Mail.SendMeAnEmail("Error in insert article", "FeedId: " + lFeed.Id + " " + ex.ToString()); } } //validation not to import single article more than once var lArticles = FeedService.GetArticles(lFeed.Id); foreach (var rArticle in rFeed.Articles) { var lArticle = lArticles.Find(le => le.Name == rArticle.Name); if (lArticle == null) { //we have a problem Mail.SendMeAnEmail("Parse feed multiple articles will be inserted", "Local feedId: " + lFeed.Id); } } lFeed.Updated = DateTime.Now; FeedService.UpdateFeed(lFeed); }
public void Parse(Feed lFeed) { try { lFeed.Updated = DateTime.Now; var rFeed = FeedService.GetRemoteFeed(lFeed); if (rFeed == null) { return; } if (rFeed.Name != lFeed.Name || rFeed.Description != lFeed.Description || rFeed.SiteUrl != lFeed.SiteUrl) { lFeed.Name = rFeed.Name; lFeed.Description = rFeed.Description; lFeed.SiteUrl = rFeed.SiteUrl; FeedService.UpdateFeed(lFeed); } lFeed.Articles = FeedService.GetArticlesWithoutBody(lFeed.Id); var lTags = CacheClient.Default.GetOrAdd("parsingLocalTags", CachePeriod.ForMinutes(15), () => FeedService.GetTagsWithArticlesCountGreaterThan(0)); var uniqueArticles = rFeed.Articles.GroupBy(a => a.Url).Select(a => a.First()).ToList(); foreach (var rArticle in uniqueArticles) { try { if (!lFeed.Public && ( rArticle.Published > DateTime.MinValue && rArticle.Published <= DateTime.Now.AddYears(-1)) ) { continue; } var lArticle = lFeed.Articles.Find(le => le.Url == rArticle.Url); if (lArticle != null) { if (lArticle.Name != rArticle.Name) { lArticle.Name = rArticle.Name; lArticle.Body = rArticle.Body; FeedService.UpdateArticle(lArticle); if (!Debugger.IsAttached) { LuceneSearch.AddUpdateIndex(lArticle); Redis.UpdateArticleName(lArticle); } } rFeed.Articles.Remove(rArticle); continue; } rArticle.FeedId = lFeed.Id; if (rFeed.Public && rArticle.Published <= DateTime.Now.AddDays(-32)) { rArticle.Published = DateTime.Now; } if (rArticle.FeedId == 5569 && rArticle.Name.ToLower().Contains("comment on")) { continue; } rArticle.Tags = GetArticleTags(rArticle, lTags, rFeed.Encoding); if (lFeed.Public) { rArticle.LikesCount = Facebook.GetNumberOfLikes(rArticle.Url) + Twitter.GetNumberOfTweets(rArticle.Url) + LinkedIn.GetNumberOfShares(rArticle.Url) + Google.GetNumberOfShares(rArticle.Url) + Reddit.GetNumberOfVotes(rArticle.Url); } lock (_insertArticleLock) { rArticle.Id = FeedService.InsertArticle(rArticle); } rArticle.Feed = lFeed; if (!Debugger.IsAttached) { LuceneSearch.AddUpdateIndex(rArticle); Redis.AddArticle(rArticle); } } catch (Exception ex) { Mail.SendMeAnEmail("Error in insert article", "FeedId: " + lFeed.Id + " " + ex.ToString()); } } } catch (Exception ex) { Mail.SendMeAnEmail("Error in parse feed", +lFeed.Id + " " + ex.ToString()); } }