Exemple #1
0
        public ITweet PublishTweetInReplyTo(string text, ITweetIdentifier tweet)
        {
            var parameters = new PublishTweetOptionalParameters();

            parameters.InReplyToTweet = tweet;

            return(PublishTweet(text, parameters));
        }
Exemple #2
0
        // UnRetweet
        public string GetUnRetweetQuery(ITweetIdentifier tweetIdentifier)
        {
            if (tweetIdentifier == null)
            {
                return(null);
            }

            return(GetUnRetweetQuery(tweetIdentifier.Id));
        }
Exemple #3
0
        // Get Retweets

        public string GetRetweetsQuery(ITweetIdentifier tweetIdentifier, int maxRetweetsToRetrieve)
        {
            _tweetQueryValidator.ValidateTweetIdentifier(tweetIdentifier);

            var query = new StringBuilder(string.Format(Resources.Tweet_Retweet_GetRetweets, tweetIdentifier.Id));

            query.AddParameterToQuery("count", maxRetweetsToRetrieve);

            return(query.ToString());
        }
        // Get Retweets

        public string GetRetweetsQuery(ITweetIdentifier tweetIdentifier, int maxRetweetsToRetrieve)
        {
            _tweetQueryValidator.ThrowIfTweetCannotBeUsed(tweetIdentifier);

            var query = new StringBuilder(string.Format(Resources.Tweet_Retweet_GetRetweets, tweetIdentifier.Id));

            query.AddParameterToQuery("count", maxRetweetsToRetrieve);
            query.AddFormattedParameterToQuery(_queryParameterGenerator.GenerateTweetModeParameter(_tweetinviSettingsAccessor.CurrentThreadSettings.TweetMode));

            return(query.ToString());
        }
        public string GetRetweeterIdsQuery(ITweetIdentifier tweetIdentifier, int maxRetweetersToRetrieve = 100)
        {
            _tweetQueryValidator.ThrowIfTweetCannotBeUsed(tweetIdentifier);

            var query = new StringBuilder(string.Format(Resources.Tweet_GetRetweeters, tweetIdentifier.Id));

            query.AddParameterToQuery("id", tweetIdentifier.Id);
            query.AddParameterToQuery("count", maxRetweetersToRetrieve);

            return(query.ToString());
        }
Exemple #6
0
        public void ValidateTweetIdentifier(ITweetIdentifier tweetIdentifier)
        {
            if (tweetIdentifier == null)
            {
                throw new ArgumentException("TweetIdentifier");
            }

            if (!IsValidTweetIdentifier(tweetIdentifier))
            {
                throw new ArgumentException("TweetIdentifier is not valid.");
            }
        }
Exemple #7
0
        public void ThrowIfTweetCannotBeUsed(ITweetIdentifier tweet, string parameterName)
        {
            if (tweet == null)
            {
                throw new ArgumentNullException($"{nameof(tweet)}");
            }

            if (!IsValidTweetIdentifier(tweet))
            {
                throw new ArgumentException(parameterName);
            }
        }
        public void ValidateTweetIdentifier(ITweetIdentifier tweetIdentifier)
        {
            if (tweetIdentifier == null)
            {
                throw new ArgumentException("TweetIdentifier");
            }

            if (!IsValidTweetIdentifier(tweetIdentifier))
            {
                throw new ArgumentException("TweetIdentifier is not valid.");
            }
        }
        public void ThrowIfTweetCannotBeUsed(ITweetIdentifier tweet)
        {
            if (tweet == null)
            {
                throw new ArgumentNullException("Tweet cannot be null.");
            }

            if (tweet.Id == TweetinviSettings.DEFAULT_ID)
            {
                throw new ArgumentNullException("Tweet id is invalid.");
            }
        }
        private string GetTweetId(ITweetIdentifier tweetIdentifier)
        {
            if (tweetIdentifier == null)
            {
                return(null);
            }

            var tweetId = tweetIdentifier.IdStr;

            if (string.IsNullOrEmpty(tweetId))
            {
                tweetId = tweetIdentifier.Id.ToString(CultureInfo.InvariantCulture);
            }

            return(tweetId);
        }
Exemple #11
0
 public bool IsValidTweetIdentifier(ITweetIdentifier tweetIdentifier)
 {
     return(tweetIdentifier != null && tweetIdentifier.Id > 0);
 }
        // Get Retweets

        public string GetRetweetsQuery(ITweetIdentifier tweetIdentifier, int maxRetweetsToRetrieve)
        {
            _tweetQueryValidator.ValidateTweetIdentifier(tweetIdentifier);

            var query = new StringBuilder(string.Format(Resources.Tweet_Retweet_GetRetweets, tweetIdentifier.Id));
            query.AddParameterToQuery("count", maxRetweetsToRetrieve);

            return query.ToString();
        }
 public UnfavoriteTweetParameters(ITweetIdentifier tweet)
 {
     Tweet = tweet;
 }
        public IEnumerable <long> GetRetweetersIds(ITweetIdentifier tweetIdentifier, int maxRetweetersToRetrieve)
        {
            var query = _tweetQueryGenerator.GetRetweeterIdsQuery(tweetIdentifier, maxRetweetersToRetrieve);

            return(_twitterAccessor.ExecuteCursorGETQuery <long, IIdsCursorQueryResultDTO>(query));
        }
Exemple #15
0
        public ITweet PublishTweetInReplyTo(string text, ITweetIdentifier tweet)
        {
            var parameters = new PublishTweetOptionalParameters();
            parameters.InReplyToTweet = tweet;

            return PublishTweet(text, parameters);
        }
Exemple #16
0
 /// <summary>
 /// Get the retweeter Ids who tweeted a specific tweet
 /// </summary>
 public static IEnumerable <long> GetRetweetersIds(ITweetIdentifier tweetIdentifier, int maxRetweetersToRetrieve = 100)
 {
     return(TweetController.GetRetweetersIds(tweetIdentifier, maxRetweetersToRetrieve));
 }
Exemple #17
0
        // UnRetweet

        /// <summary>
        /// Publish a unretweet tweet
        /// </summary>
        public static bool UnRetweet(ITweetIdentifier tweet)
        {
            return(TweetController.UnRetweet(tweet) != null);
        }
Exemple #18
0
        // Get Retweet

        /// <summary>
        /// Get the retweets of a specific tweet
        /// </summary>
        public static IEnumerable <ITweet> GetRetweets(ITweetIdentifier tweet)
        {
            return(TweetController.GetRetweets(tweet));
        }
 public IEnumerable<ITweetDTO> GetRetweets(ITweetIdentifier tweetIdentifier, int maxRetweetsToRetrieve)
 {
     var query = _tweetQueryGenerator.GetRetweetsQuery(tweetIdentifier, maxRetweetsToRetrieve);
     return _twitterAccessor.ExecuteGETQuery<IEnumerable<ITweetDTO>>(query);
 }
 // Publish UnRetweet
 public ITweetDTO UnRetweet(ITweetIdentifier tweetToRetweet)
 {
     string query = _tweetQueryGenerator.GetUnRetweetQuery(tweetToRetweet);
     return _twitterAccessor.ExecutePOSTQuery<ITweetDTO>(query);
 }
 public IEnumerable<long> GetRetweetersIds(ITweetIdentifier tweetIdentifier, int maxRetweetersToRetrieve)
 {
     var query = _tweetQueryGenerator.GetRetweeterIdsQuery(tweetIdentifier, maxRetweetersToRetrieve);
     return _twitterAccessor.ExecuteCursorGETQuery<long, IIdsCursorQueryResultDTO>(query);
 }
 public GetTweetParameters(ITweetIdentifier tweet)
 {
     Tweet = tweet;
 }
Exemple #23
0
        // Publish UnRetweet

        public ITweet UnRetweet(ITweetIdentifier tweet)
        {
            var tweetDTO = _tweetQueryExecutor.UnRetweet(tweet);

            return(_tweetFactory.GenerateTweetFromDTO(tweetDTO));
        }
Exemple #24
0
 public string GenerateTweetIdentifier(ITweetIdentifier tweetId)
 {
     return(tweetId.IdStr ?? tweetId.Id.ToString());
 }
Exemple #25
0
 public IEnumerable <long> GetRetweetersIds(ITweetIdentifier tweetIdentifier, int maxRetweetersToRetrieve = 100)
 {
     return(_tweetQueryExecutor.GetRetweetersIds(tweetIdentifier, maxRetweetersToRetrieve));
 }
Exemple #26
0
 // Get Retweets
 public string GetRetweets(ITweetIdentifier tweetIdentifier, int maxRetweetsToRetrieve = 100)
 {
     string query = _tweetQueryGenerator.GetRetweetsQuery(tweetIdentifier, maxRetweetsToRetrieve);
     return _twitterAccessor.ExecuteGETQueryReturningJson(query);
 }
        // UnRetweet
        public string GetUnRetweetQuery(ITweetIdentifier tweetIdentifier)
        {
            if (tweetIdentifier == null)
            {
                return null;
            }

            return GetUnRetweetQuery(tweetIdentifier.Id);
        }
Exemple #28
0
        public IEnumerable <ITweet> GetRetweets(ITweetIdentifier tweetIdentifier, int maxRetweetsToRetrieve = 100)
        {
            var retweetsDTO = _tweetQueryExecutor.GetRetweets(tweetIdentifier, maxRetweetsToRetrieve);

            return(_tweetFactory.GenerateTweetsFromDTO(retweetsDTO));
        }
Exemple #29
0
 /// <summary>
 /// Get the retweeter Ids who tweeted a specific tweet
 /// </summary>
 public static IEnumerable<long> GetRetweetersIds(ITweetIdentifier tweetIdentifier, int maxRetweetersToRetrieve = 100)
 {
     return TweetController.GetRetweetersIds(tweetIdentifier, maxRetweetersToRetrieve);
 }
Exemple #30
0
 // Get Retweet
 /// <summary>
 /// Get the retweets of a specific tweet
 /// </summary>
 public static IEnumerable<ITweet> GetRetweets(ITweetIdentifier tweet)
 {
     return TweetController.GetRetweets(tweet);
 }
Exemple #31
0
 // UnRetweet
 /// <summary>
 /// Publish a unretweet tweet
 /// </summary>
 public static bool UnRetweet(ITweetIdentifier tweet)
 {
     return TweetController.UnRetweet(tweet) != null;
 }
        public IEnumerable <ITweetDTO> GetRetweets(ITweetIdentifier tweetIdentifier, int maxRetweetsToRetrieve)
        {
            var query = _tweetQueryGenerator.GetRetweetsQuery(tweetIdentifier, maxRetweetsToRetrieve);

            return(_twitterAccessor.ExecuteGETQuery <IEnumerable <ITweetDTO> >(query));
        }
 // UnRetweet
 public string GetUnRetweetQuery(ITweetIdentifier tweetIdentifier)
 {
     _tweetQueryValidator.ThrowIfTweetCannotBeUsed(tweetIdentifier);
     return(GetUnRetweetQuery(tweetIdentifier.Id));
 }
        // Publish UnRetweet
        public ITweetDTO UnRetweet(ITweetIdentifier tweetToRetweet)
        {
            string query = _tweetQueryGenerator.GetUnRetweetQuery(tweetToRetweet);

            return(_twitterAccessor.ExecutePOSTQuery <ITweetDTO>(query));
        }
Exemple #35
0
        // Get Retweets
        public string GetRetweetsQuery(ITweetIdentifier tweetIdentifier, int maxRetweetsToRetrieve)
        {
            _tweetQueryValidator.ThrowIfTweetCannotBeUsed(tweetIdentifier);

            var query = new StringBuilder(string.Format(Resources.Tweet_Retweet_GetRetweets, tweetIdentifier.Id));

            query.AddParameterToQuery("count", maxRetweetsToRetrieve);
            query.Append(_queryParameterGenerator.GenerateTweetModeParameter(_tweetinviSettingsAccessor.CurrentThreadSettings.TweetMode));

            return query.ToString();
        }
Exemple #36
0
 public IEnumerable<long> GetRetweetersIds(ITweetIdentifier tweetIdentifier, int maxRetweetersToRetrieve = 100)
 {
     return _tweetQueryExecutor.GetRetweetersIds(tweetIdentifier, maxRetweetersToRetrieve);
 }
        public async Task CreateReadDelete()
        {
            if (!EndToEndTestConfig.ShouldRunEndToEndTests)
            {
                return;
            }

            var sourceTweet = await _protectedClient.Tweets.GetTweet(979753598446948353);

            var quotingTweet1 = await _protectedClient.Tweets.PublishTweet(new PublishTweetParameters("tweetinvi 3.0!")
            {
                QuotedTweetUrl = "https://twitter.com/TweetinviApi/status/979753598446948353",
            });

            var quotingTweet2 = await _protectedClient.Tweets.PublishTweet(new PublishTweetParameters("Tweetinvi 3 v2!")
            {
                QuotedTweet = sourceTweet
            });

            var replyTweet = await _protectedClient.Tweets.PublishTweet(new PublishTweetParameters("Tweetinvi 3 v2!")
            {
                InReplyToTweetId          = sourceTweet.Id,
                AutoPopulateReplyMetadata = true
            });

            var fullTweet = await _protectedClient.Tweets.PublishTweet(new PublishTweetParameters("#tweetinvi and https://github.com/linvi/tweetinvi Full Tweet!")
            {
                Coordinates             = new Coordinates(37.7821120598956, -122.400612831116),
                DisplayExactCoordinates = true,
                TrimUser = true,
                PlaceId  = "3e8542a1e9f82870",
            });

            var tweetinviLogoBinary = File.ReadAllBytes("./tweetinvi-logo-purple.png");
            var media = await _protectedClient.Upload.UploadTweetImage(tweetinviLogoBinary);

            var tweetWithMedia = await _protectedClient.Tweets.PublishTweet(new PublishTweetParameters("tweet with media")
            {
                Medias            = { media },
                PossiblySensitive = true,
            });

            var allTweetIdentifiers = new ITweetIdentifier[]
            {
                quotingTweet1,
                quotingTweet2,
                replyTweet,
                fullTweet,
                tweetWithMedia
            };

            var allTweets = await _protectedClient.Tweets.GetTweets(allTweetIdentifiers);

            await _protectedClient.Tweets.DestroyTweet(quotingTweet1);

            await _protectedClient.Tweets.DestroyTweet(quotingTweet2);

            await _protectedClient.Tweets.DestroyTweet(replyTweet);

            await _protectedClient.Tweets.DestroyTweet(fullTweet);

            await _protectedClient.Tweets.DestroyTweet(tweetWithMedia);

            // ASSERT
            Assert.Equal(979753598446948353, quotingTweet1.QuotedStatusId);
            Assert.Equal(979753598446948353, quotingTweet2.QuotedStatusId);
            Assert.Equal(sourceTweet.Id, replyTweet.InReplyToStatusId);
            Assert.Equal("TweetinviApi", replyTweet.UserMentions[0].ScreenName);

            Assert.Null(fullTweet.CreatedBy.Name);
            Assert.Equal(37, Math.Floor(fullTweet.Coordinates.Latitude));
            Assert.Equal(-122, Math.Ceiling(fullTweet.Coordinates.Longitude));
            Assert.Equal("Toronto", fullTweet.Place.Name);
            Assert.Equal("tweetinvi", fullTweet.Hashtags[0].Text);
            Assert.Single(fullTweet.Entities.Hashtags);
            Assert.Equal("https://github.com/linvi/tweetinvi", fullTweet.Urls[0].ExpandedURL);
            Assert.Single(fullTweet.Entities.Urls);

            Assert.Single(tweetWithMedia.Media);
            Assert.True(tweetWithMedia.PossiblySensitive);

            Assert.True(allTweetIdentifiers.Select(x => x.Id).All(shouldItem => allTweets.Any(isItem => isItem.Id == shouldItem)));
        }
Exemple #38
0
        public string GetRetweeterIdsQuery(ITweetIdentifier tweetIdentifier, int maxRetweetersToRetrieve = 100)
        {
            _tweetQueryValidator.ThrowIfTweetCannotBeUsed(tweetIdentifier);

            var query = new StringBuilder(string.Format(Resources.Tweet_GetRetweeters, tweetIdentifier.Id));

            query.AddParameterToQuery("id", tweetIdentifier.Id);
            query.AddParameterToQuery("count", maxRetweetersToRetrieve);

            return query.ToString();
        }
Exemple #39
0
 public IEnumerable<ITweet> GetRetweets(ITweetIdentifier tweetIdentifier, int maxRetweetsToRetrieve = 100)
 {
     var retweetsDTO = _tweetQueryExecutor.GetRetweets(tweetIdentifier, maxRetweetsToRetrieve);
     return _tweetFactory.GenerateTweetsFromDTO(retweetsDTO);
 }
Exemple #40
0
 // UnRetweet
 public string GetUnRetweetQuery(ITweetIdentifier tweetIdentifier)
 {
     _tweetQueryValidator.ThrowIfTweetCannotBeUsed(tweetIdentifier);
     return GetUnRetweetQuery(tweetIdentifier.Id);
 }
Exemple #41
0
 // Publish UnRetweet
 public ITweet UnRetweet(ITweetIdentifier tweet)
 {
     var tweetDTO = _tweetQueryExecutor.UnRetweet(tweet);
     return _tweetFactory.GenerateTweetFromDTO(tweetDTO);
 }
Exemple #42
0
 /// <summary>
 /// Publish a tweet in reply to another one
 /// </summary>
 public static ITweet PublishTweetInReplyTo(string text, ITweetIdentifier tweetToReplyTo)
 {
     return(TweetController.PublishTweetInReplyTo(text, tweetToReplyTo));
 }
Exemple #43
0
 // Publish TweetInReplyTo From Text
 public static async Task <ITweet> PublishTweetInReplyTo(string text, ITweetIdentifier tweetToReplyTo)
 {
     return(await Sync.ExecuteTaskAsync(() => Tweet.PublishTweetInReplyTo(text, tweetToReplyTo)));
 }
Exemple #44
0
 public static ITweet PublishTweetInReplyTo(string text, ITweetIdentifier tweetToReplyTo)
 {
     return TweetController.PublishTweetInReplyTo(text, tweetToReplyTo);
 }
 public bool IsValidTweetIdentifier(ITweetIdentifier tweetIdentifier)
 {
     return tweetIdentifier != null && tweetIdentifier.Id > 0;
 }
Exemple #46
0
 public DestroyTweetParameters(ITweetIdentifier tweet)
 {
     Tweet = tweet;
 }
Exemple #47
0
 public Task DestroyTweetAsync(ITweetIdentifier tweet)
 {
     return(DestroyTweetAsync(new DestroyTweetParameters(tweet)));
 }
 // Publish TweetInReplyTo From Text
 public static async Task<ITweet> PublishTweetInReplyTo(string text, ITweetIdentifier tweetToReplyTo)
 {
     return await Sync.ExecuteTaskAsync(() => Tweet.PublishTweetInReplyTo(text, tweetToReplyTo));
 }
Exemple #49
0
 public void ThrowIfTweetCannotBeUsed(ITweetIdentifier tweet)
 {
     ThrowIfTweetCannotBeUsed(tweet, $"{nameof(tweet)}.{nameof(tweet.Id)}");
 }
Exemple #50
0
 public GetRetweeterIdsParameters(ITweetIdentifier tweet) : this()
 {
     Tweet = tweet;
 }
Exemple #51
0
        public void ThrowIfTweetCannotBeUsed(ITweetIdentifier tweet)
        {
            if (tweet == null)
            {
                throw new ArgumentNullException("Tweet cannot be null.");
            }

            if (tweet.Id == TweetinviSettings.DEFAULT_ID)
            {
                throw new ArgumentNullException("Tweet id is invalid.");
            }
        }