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(); }
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); }
private void SetAuthenticatedUser(IAuthenticatedUser u) { UserName = u.Name; UserPicture = u.ProfileImageUrl400x400; Observable.Timer(TimeSpan.Zero, TimeSpan.FromSeconds(15)).Subscribe(_ => Tweets = u.GetHomeTimeline(100)); }