Ejemplo n.º 1
0
        private static TwitterHandle GetPopulatedHandleFromUser(IUser user, string category)
        {
            var h = new TwitterHandle(user.ScreenName)
            {
                Name      = user.Name,
                ImgUrl    = user.ProfileImageUrl,
                Followers = user.FollowersCount,
                Friends   = user.FriendsCount,
                Location  = GetLocation(user),
                Website   = GetWebsite(user),
                Category  = category,
                Bio       = TidyUpBio(GetBio(user))
            };

            var numberOfTweets = 200;

            ITweet[] tweets;
            try
            {
                WaitToScore();
                tweets = GetUserTimelineTweets(user, numberOfTweets);
            }
            catch (Exception e)
            {
                var errorMessage = string.Format("Error getting populated handle '{0}' : {1}", user.ScreenName, e.Message);
                Console.WriteLine(errorMessage);
                return(InvisibleUser);
            }

            if (tweets.Length != numberOfTweets) // in case the account doesn't have the required amount
            {
                if (tweets.Length == 0)
                {
                    return(InvisibleUser);
                }
                numberOfTweets = tweets.Length;
            }

            var totalRetweets   = 0;
            var totalFavourites = 0;

            foreach (var t in tweets)
            {
                if (!t.IsRetweet)
                {
                    totalRetweets += t.RetweetCount;
                }
                totalFavourites += t.FavouriteCount;
            }

            h.RetweetRate   = (totalRetweets / numberOfTweets) + 1;
            h.FavouriteRate = (totalFavourites / numberOfTweets) + 1;

            h.Score = ComputeScore(h);

            return(h);
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Needs more work.
        /// </summary>
        /// <param name="h"></param>
        /// <returns></returns>
        private static double ComputeScore(TwitterHandle h)
        {
            var score = Math.Pow(h.RetweetRate, 2) + h.FavouriteRate + h.Friends / 100 + (h.Followers / 1000);

            return(score);
        }