コード例 #1
0
        public async void LoadMoreTweets()
        {
            HomeTlParameters.MaximumNumberOfTweetsToRetrieve = 20;
            HomeTlParameters.MaxId = Tweets.ElementAt(Tweets.IndexOf(Tweets.Last())).Id;

            var newTweets = Tweetinvi.Timeline.GetHomeTimeline(HomeTlParameters);

            if (newTweets != null)
            {
                foreach (var tweet in newTweets)
                {
                    var curTweet = tweet as Tweet;

                    if (curTweet.Id != Tweets.Last().Id)
                    {
                        Tweets.Insert(Tweets.IndexOf(Tweets.Last()) + 1, curTweet);
                    }
                }

                await Task.CompletedTask;
            }
            else
            {
                LoadMoreTweets();
            }
        }
コード例 #2
0
        public async void LoadMoreTweets()
        {
            var newTweets = Tweetinvi.Timeline.GetUserTimeline(UserToLoad.Id, new UserTimelineParameters {
                MaxId = Tweets.Last().Id,
                MaximumNumberOfTweetsToRetrieve = 20
            });

            if (newTweets != null)
            {
                foreach (var tweet in newTweets)
                {
                    var curTweet = tweet as Tweet;

                    if (curTweet.Id != Tweets.Last().Id)
                    {
                        Tweets.Insert(Tweets.IndexOf(Tweets.Last()) + 1, curTweet);
                    }
                }

                await Task.CompletedTask;
            }
            else
            {
                LoadMoreTweets();
            }
        }
コード例 #3
0
        private async void LoadTweetsAsync()
        {
            List <Tweet> tweets = await Service.SearchAsync(Hashtag);

            foreach (Tweet t in tweets)
            {
                Tweets.Add(t);
            }

            // stream tweets
            Service.StreamAsync(Hashtag, (t) =>
            {
                Tweets.Insert(0, t);
            });
        }
コード例 #4
0
        private async void TimelineReloading()
        {
            var newTweets = Tweetinvi.Timeline.GetUserTimeline(UserToLoad.Id);

            if (newTweets != null)
            {
                foreach (var tweet in newTweets)
                {
                    var curTweet = tweet as Tweet;
                    Tweets.Insert(0, curTweet);
                }

                await Task.CompletedTask;
            }
            else
            {
                TimelineReloading();
            }
        }
コード例 #5
0
        private void Retweet(object tweetIdStr)
        {
            var tweetId = Convert.ToInt64(tweetIdStr);

            var tweetLocal   = Tweets.Single(i => i.Id == tweetId);
            var tweetBeforRT = Tweetinvi.Tweet.GetTweet(tweetId) as Tweet;

            if (tweetBeforRT.Retweeted)
            {
                Tweetinvi.Tweet.UnRetweet(tweetId);
            }
            else
            {
                Tweetinvi.Tweet.PublishRetweet((long)tweetId);
            }

            var tweetAfterRT = Tweetinvi.Tweet.GetTweet(tweetId) as Tweet;

            Tweets.Insert(Tweets.IndexOf(tweetLocal), tweetAfterRT);
            Tweets.Remove(tweetLocal);
        }
コード例 #6
0
 private void NewTweet(ITweet tweet)
 {
     if (Filter(tweet))
     {
         if (TweetContainsKeyword(tweet))
         {
             PlayKeywordNotification();
         }
         else if (IsUrgent(tweet))
         {
             PlayUrgentNotification();
         }
         else
         {
             PlayNormalNotification();
         }
         Tweets.Insert(0, tweet);
         TweetsHTML = BuildHTML();
         WriteTweetFile(tweet);
     }
 }
コード例 #7
0
        private void Like(object tweetIdStr)
        {
            var tweetId = Convert.ToInt64(tweetIdStr);

            var tweetLocal = Tweets.Single(i => i.Id == tweetId);

            var tweetBeforLike = Tweetinvi.Tweet.GetTweet(tweetId) as Tweet;

            if (tweetBeforLike.Favorited)
            {
                Tweetinvi.Tweet.UnFavoriteTweet(tweetId);
            }
            else
            {
                Tweetinvi.Tweet.FavoriteTweet((long)tweetId);
            }

            var tweetAfterLike = Tweetinvi.Tweet.GetTweet(tweetId) as Tweet;

            Tweets.Insert(Tweets.IndexOf(tweetLocal), tweetAfterLike);
            Tweets.Remove(tweetLocal);
        }
コード例 #8
0
        private async void TimelineReloading()
        {
            HomeTlParameters.MaximumNumberOfTweetsToRetrieve = 50;
            HomeTlParameters.SinceId = Tweets.ElementAt(0).Id;

            var newTweets = Tweetinvi.Timeline.GetHomeTimeline(HomeTlParameters);

            if (newTweets != null)
            {
                foreach (var tweet in newTweets)
                {
                    var curTweet = tweet as Tweet;
                    Tweets.Insert(0, curTweet);
                }

                await Task.CompletedTask;
            }
            else
            {
                TimelineReloading();
            }
        }
コード例 #9
0
 public void AddTweet(ITweet tweet)
 {
     _tweets.Insert(0, new Tweet(tweet));
     // Refresh timeline
     lbTimeline.Dispatcher.BeginInvoke(new Action(lbTimeline.Items.Refresh));
 }