Example #1
0
 protected void Page_Load(object sender, EventArgs e)
 {
     // For some reason this app throws random error when loading the page first time. I made this dirty fix to wait a little before actually loading the page.
     // It seems to help
     Thread.Sleep(500);
     // Enable RateLimit Tracking. Tracks and waits, so in worst case the app stops working for 15 minutes as tokens are gained in 15 minute intervals
     // Couldn't get TrackOnly method to work
     RateLimit.RateLimitTrackerMode = RateLimitTrackerMode.TrackAndAwait;
     if (!IsPostBack)
     {
         try
         {
             // Redirect to log in page if session user is null
             if (Session["user"] == null)
             {
                 Response.Redirect("LogIn.aspx");
             }
             user = (IAuthenticatedUser)Session["user"];
             InitUserData(user);
             // Gets 200 latest tweets and mentions
             latestTweets = user.GetHomeTimeline(200);
             userMentions = user.GetMentionsTimeline(200);
         }
         catch (Exception ex)
         {
             lblError.Text = ex.Message;
         }
     }
     GenerateTimeline();
 }
Example #2
0
        public List <string> GetStatuses()
        {
            _log.WriteIn();

            var  result  = new List <string>();
            long?sinceId = -1;

            var homeParams = new HomeTimelineParameters()
            {
                MaximumNumberOfTweetsToRetrieve = 200
            };

            // homeParams.AddCustomQueryParameter("tweet_mode", "extended"); // Avoid truncated tweets - Useless now

            while (this.GetRemainingRequests() > 0)
            {
                if (sinceId != -1)
                {
                    homeParams.SinceId = (long)sinceId;
                }

                _log.Write($"GetHomeTimeLine with sinceId: {sinceId}");

                var statuses = _user.GetHomeTimeline(homeParams);

                _log.Write($"Did we get something? {statuses != null}");
                if (statuses == null)
                {
                    break;                   // couldn't fetch more
                }
                foreach (var tweet in statuses)
                {
                    var text = tweet.RetweetedTweet?.FullText ?? tweet.FullText;

                    text = this.CleanTweet(text);

                    if (this.IsNiceTweet(text))
                    {
                        result.Add(text);
                    }

                    sinceId = tweet.Id;
                }
            }

            return(result);
        }
        public void GetHomeTimeline_CurrentCredentialsAreNotAuthenticatedUserCredentials_OperationPerformedWithAppropriateCredentials()
        {
            // Arrange
            var nbTweets = TestHelper.GenerateRandomInt();

            ITwitterCredentials startOperationWithCredentials = null;

            _fakeTimelineController.CallsTo(x => x.GetHomeTimeline(nbTweets)).Invokes(() =>
            {
                startOperationWithCredentials = _fakeCredentialsAccessor.FakedObject.CurrentThreadCredentials;
            });

            // Act
            _authenticatedUser.GetHomeTimeline(nbTweets);

            // Assert
            Assert.AreEqual(startOperationWithCredentials, _authenticatedUserCredentials);
            Assert.AreEqual(_fakeCredentialsAccessor.FakedObject.CurrentThreadCredentials, _currentCredentials);
        }
Example #4
0
 private void SetAuthenticatedUser(IAuthenticatedUser u)
 {
     UserName    = u.Name;
     UserPicture = u.ProfileImageUrl400x400;
     Observable.Timer(TimeSpan.Zero, TimeSpan.FromSeconds(15)).Subscribe(_ =>
                                                                         Tweets = u.GetHomeTimeline(100));
 }