示例#1
0
        public void ProcessTweet(TweetDto tweet)
        {
            if (tweet == null)
            {
                return;
            }

            var tweetDetails = new TweetDetails();

            var tweetMedia = tweet?.Includes?.Media;

            if (tweetMedia != null)
            {
                tweetDetails.HasPhoto = tweetMedia.Any(x => x.Type == TweetMediaTypes.Photo);
            }

            var tweetEntities = tweet?.Data?.Entities;

            if (tweetEntities != null)
            {
                if (tweetEntities?.HashTags != null)
                {
                    tweetDetails.HasHashTag = tweetEntities.HashTags.Any();
                    if (tweetDetails.HasHashTag)
                    {
                        _twitterDatabase.UpdateHashTagCount(tweetEntities.HashTags.Select(x => x.Tag));
                    }
                }

                if (tweetEntities?.Urls != null)
                {
                    var urls = tweetEntities.Urls.Where(x => x.ExpandedUri != null);
                    tweetDetails.HasUrl = tweetEntities.Urls.Any();
                    if (tweetDetails.HasUrl)
                    {
                        _twitterDatabase.UpdateUrlCount(urls.Select(x => x.ExpandedUri));
                    }
                }
            }

            var tweetText = tweet?.Data?.Text;

            if (!string.IsNullOrEmpty(tweetText))
            {
                var emojis = _emojiService.GetEmojisFromText(tweetText);
                tweetDetails.HasEmoji = emojis.Any();
                if (tweetDetails.HasEmoji)
                {
                    _twitterDatabase.UpdateEmojiCount(emojis);
                }
            }

            _twitterDatabase.AddTweetAnalytics(tweetDetails);

#if DEBUG
            Console.WriteLine(tweet?.Data?.Text);
#endif
        }
示例#2
0
        private void SetTweetPerUser(IList <string> tweets)
        {
            var index = 0;

            while (index < tweets.Count)
            {
                TweetDetails.Add(new TweetDetail()
                {
                    User         = tweets[index].Trim(),
                    TweetMessage = tweets[index + 1]
                });

                index += 2;
            }
        }
示例#3
0
 public void AddTweetAnalytics(TweetDetails tweetDetails)
 {
     _tweetAnalyticsData.AddOrUpdate(_tweetSummaryKey,
                                     new TweetAnalytics(tweetDetails),
                                     (key, currentValue) => currentValue.UpdateAnalytics(tweetDetails));
 }