Example #1
0
        public List <Tweet> GetTimeline(long userId)
        {
            Console.WriteLine($"*** Starting on {userId} ***");
            TweetReader tweetReader   = new TweetReader(Keys.mySqlConnectionString);
            long?       latestTweetID = tweetReader.FindMostRecentTweetId(userId);

            List <Tweet> untaggedTweets = new List <Tweet>();

            while (RequestsRemaining < 10)
            {
                Console.WriteLine("Less than 10 requests remaining in window. 15 minute cooldown starts now.");
                Thread.Sleep(90 * 1000 * 10); // Wait 900,000 milliseconds, i.e. 15 minutes

                var newRateLimit = Tweetinvi.RateLimit.GetQueryRateLimit("https://api.twitter.com/1.1/statuses/user_timeline.json");
                RequestsRemaining = newRateLimit.Remaining;
                ResetDateTime     = newRateLimit.ResetDateTime;
            }

            Console.WriteLine($"Requests remaining: {RequestsRemaining}");

            if (latestTweetID == null)
            {
                untaggedTweets = GetTweetsForNewUser(userId, 100);
            }
            else
            {
                untaggedTweets = GetTweetsForExistingUser(userId, latestTweetID.Value);
            }

            return(untaggedTweets);
        }
        public void GetLatestTweets()
        {
            DotNetEnv.Env.Load();
            ITweetReader tweetReader = new TweetReader(
                HelperMethods.GetEnvironmentVariable <string>("twitterconsumerpublic"),
                HelperMethods.GetEnvironmentVariable <string>("twitterconsumerprivate"),
                HelperMethods.GetEnvironmentVariable <string>("twitteraccesstoken"),
                HelperMethods.GetEnvironmentVariable <string>("twitteraccesssecret"));

            var tweets = tweetReader.GetLatestTweets("jbschwi", 10);

            Assert.True(tweets.Any());
        }
        public void GivenTwitterApiResponse_PassesItAlong()
        {
            var tweetReader = new TweetReader();

            //This is not a unit test!
            //There is no way I can call this method
            // without it actually calling out to Twitter.
            var results = tweetReader.ReadTweetsForUser("asdfsdf");

            Assert.That(results, Is.Not.Null);
            //Because it is not a unit test,
            // this assertion especially would be very fragile.
            // As soon as the user made a new tweet, this test would have to be updated!
            Assert.That(results.Count(), Is.EqualTo(2));
        }
Example #4
0
        public void GivenTwitterApiResponse_PassesItAlong()
        {
            var apiResults = SomeTweets();
            var mockApi    = new Mock <ITwitterApi>();

            mockApi.Setup(x => x.GetTweets(It.IsAny <String>()))
            .Returns(apiResults);
            var tweetReader = new TweetReader(mockApi.Object);

            var results = tweetReader.ReadTweetsForUser("asdfasdf");

            Assert.That(results, Is.Not.Null);
            Assert.That(results.Count(), Is.EqualTo(2));
            Assert.That(results.First().Contents,
                        Is.EqualTo(apiResults.First().Contents));
        }
Example #5
0
        public List <Tweet> FindBySearch(string searchQuery)
        {
            string connectionString = _configuration["ConnectionString"];

            TweetReader  tweetFinder = new TweetReader(connectionString);
            List <Tweet> tweets      = tweetFinder.SearchUsersAndTweetContent(searchQuery);

            if (tweets == null)
            {
                return(null);
            }
            else
            {
                return(tweets);
            }
        }
Example #6
0
        public List <Tweet> FindByTag(string tag)
        {
            string connectionString = _configuration["ConnectionString"];

            TweetReader  tweetFinder = new TweetReader(connectionString);
            List <Tweet> tweets      = tweetFinder.FindTweetsByTag(tag);

            if (tweets == null)
            {
                return(null);
            }
            else
            {
                return(tweets);
            }
        }
Example #7
0
 // Use this for initialization
 void Start()
 {
     tweetReader = GetComponentInParent <TweetReader>();
     phone       = transform.parent.GetComponent <PhoneApp>();
 }