Ejemplo n.º 1
0
 public void LogToConsole(Models.Statistics statistics)
 {
     Console.SetCursorPosition(0, 2);
     Console.WriteLine("TotalNumberOfTweetsReceived: " + statistics.TotalNumberOfTweetsReceived);
     Console.WriteLine("AverageTweetsPerHour: " + statistics.AverageTweetsPerHour);
     Console.WriteLine("AverageTweetsPerMinute: " + statistics.AverageTweetsPerMinute);
     Console.WriteLine("AverageTweetsPerSecond: " + statistics.AverageTweetsPerSecond);
     Console.WriteLine("TopEmojis: " + statistics.Emojis.OrderByDescending(x => x.Value).FirstOrDefault());
     Console.WriteLine("PercentOfTweetsThatContainEmojis: " + statistics.PercentOfTweetsThatContainEmojis);
     Console.WriteLine("TopHashTags: " + statistics.HashTags.OrderByDescending(x => x.Value).FirstOrDefault());
     Console.WriteLine("PercentOfTweetsThatContainUrl: " + statistics.PercentOfTweetsThatContainUrl);
     Console.WriteLine("PercentOfTweetsThatContainPhotoUrl: " + statistics.PercentOfTweetsThatContainPhotoUrl);
     Console.WriteLine("TopDomainsOfUrlsInTweets: " + statistics.Urls.OrderByDescending(x => x.Value).FirstOrDefault());
 }
Ejemplo n.º 2
0
        public async IAsyncEnumerable <Models.Statistics> AnalyzeTwitterStream()
        {
            List <Models.Shared.Emoji> emojis = await Shared.Emojis.GetEmojiLibraryAsync();

            Authentication authentication = new Authentication();
            await authentication.TokenAsync();

            SampledStream sampledStream = new SampledStream();

            Models.Statistics statistics = new Models.Statistics();

            Shared.Twitter twitter = new Shared.Twitter();

            await foreach (Models.TwitterApi.Tweet tweet in sampledStream.GetSampledStreamAsync(authentication.Token))
            {
                if (tweet != null)
                {
                    twitter.ProcessTweet(tweet, emojis, statistics);
                    yield return(statistics);
                }
            }
        }
Ejemplo n.º 3
0
        /*===============================*\
        |*         Constructeurs         *|
        \*===============================*/

        /// <summary>
        /// Constructeur par défaut
        /// </summary>
        public Statistics()
        {
            this.model = new Models.Statistics();
        }
Ejemplo n.º 4
0
        public void ProcessTweet(Models.TwitterApi.Tweet tweet, List <Models.Shared.Emoji> emojis, Models.Statistics statistics)
        {
            List <Models.Shared.Emoji> emoticons = tweet.Data.Text.GetEmojis(emojis);

            foreach (Models.Shared.Emoji emoji in emoticons)
            {
                Extensions.AddOrUpdateUniqueCollection(statistics.Emojis, emoji.Name, (ulong)emoticons.Count(x => x.Name == emoji.Name));
            }

            Dictionary <string, ulong> hashtags = tweet.Data.Text.CountStringPatternsEndsWithSpace(new string[] { "#" });

            foreach (KeyValuePair <string, ulong> item in hashtags)
            {
                Extensions.AddOrUpdateUniqueCollection(statistics.HashTags, item.Key, item.Value);
            }

            Dictionary <string, ulong> urls = tweet.Data.Text.CountStringPatternsEndsWithSpace(new string[] { @"http://", @"https://" });

            foreach (KeyValuePair <string, ulong> item in urls)
            {
                Extensions.AddOrUpdateUniqueCollection(statistics.Urls, item.Key, item.Value);
            }

            if (emoticons.Count > 0)
            {
                statistics.NumberOfTweetsThatContainEmojis++;
            }

            if (tweet.Data.Text.ContainsUrl())
            {
                statistics.NumberOfTweetsThatContainUrl++;
            }

            if (tweet.Data.Text.Contains("pic.twitter.com") || tweet.Data.Text.Contains("Instagram"))
            {
                statistics.NumberOfTweetsThatContainPhotoUrl++;
            }

            statistics.TotalNumberOfTweetsReceived++;
        }