Пример #1
0
        public static ITweet GenerateTweet(ITweetDTO tweetDTO)
        {
            var tweet = A.Fake <ITweet>();

            A.CallTo(() => tweet.TweetDTO).Returns(tweetDTO);
            return(tweet);
        }
Пример #2
0
        private ITweetDTO PublishTweetDTO(ITweetDTO tweetToPublish)
        {
            _uploadQueryExecutor.UploadTweetMediasBeforePublish(tweetToPublish);

            var publishedTweetDTO = _tweetQueryExecutor.PublishTweet(tweetToPublish);
            return publishedTweetDTO;
        }
Пример #3
0
        private ITweetDTO PublishTweetDTOInReplyTo(ITweetDTO tweetToPublish, ITweetDTO tweetToReplyTo)
        {
            _uploadQueryExecutor.UploadTweetMediasBeforePublish(tweetToPublish);

            var tweetDTO = _tweetQueryExecutor.PublishTweetInReplyTo(tweetToPublish, tweetToReplyTo);
            return tweetDTO;
        }
Пример #4
0
        // Helper
        private string AddAdditionalParameters(ITweetDTO tweet, string baseQuery)
        {
            StringBuilder query = new StringBuilder(baseQuery);

            string placeIdParameter = _geoQueryGenerator.GeneratePlaceIdParameter(tweet.PlaceId);

            if (!String.IsNullOrEmpty(placeIdParameter))
            {
                query.Append(String.Format("&{0}", placeIdParameter));
            }

            string coordinatesParameter = _geoQueryGenerator.GenerateGeoParameter(tweet.Coordinates);

            if (!String.IsNullOrEmpty(coordinatesParameter))
            {
                query.Append(String.Format("&{0}", coordinatesParameter));
            }

            var mediaIdsParameter = GetMediaIdsParameter(tweet);

            if (!string.IsNullOrEmpty(mediaIdsParameter))
            {
                query.Append(string.Format("&{0}", mediaIdsParameter));
            }

            return(query.ToString());
        }
Пример #5
0
        public static ITweet GenerateTweet(ITweetDTO tweetDTO)
        {
            var tweet = A.Fake <ITweet>();

            tweet.CallsTo(x => x.TweetDTO).Returns(tweetDTO);
            return(tweet);
        }
        public async Task OnReceived(ITweetDTO tweet)
        {
            try
            {
                double?sentimentValue = await sentiment.Measure(tweet.Text).ConfigureAwait(false);

                ITweet tweetItem = Tweet.GenerateTweetFromDTO(tweet);
                var    saveTask  = Task.Run(() => persistency?.Save(tweetItem, sentimentValue));
                var    rating    = new RatingRecord(tweet.Id.ToString(), DateTime.UtcNow, sentimentValue);
                foreach (IKeywordTracker tracker in Trackers)
                {
                    tracker.AddRating(tweet.Text, rating);
                }

                if (users.Contains(tweet.CreatedBy.Name))
                {
                    manager.Resolve(tweet.CreatedBy.Name, "User").AddRating(rating);
                }

                await saveTask.ConfigureAwait(false);
            }
            catch (Exception ex)
            {
                logger.LogError(ex, "Failed processing");
            }
        }
Пример #7
0
 public void UploadTweetMediasBeforePublish(ITweetDTO tweetToPublish)
 {
     if (_tweetQueryValidator.CanTweetDTOBePublished(tweetToPublish))
     {
         UploadMedias(tweetToPublish.MediasToPublish, false);
     }
 }
Пример #8
0
 public Mention(
     ITweetDTO tweetDTO,
     TweetMode?tweetMode,
     ITwitterClient client)
     : base(tweetDTO, tweetMode, client)
 {
     // Default constructor inheriting from the default Tweet constructor
 }
Пример #9
0
        public string PublishTweet(ITweetDTO tweetToPublish)
        {
            _uploadQueryExecutor.UploadTweetMediasBeforePublish(tweetToPublish);

            string query = _tweetQueryGenerator.GetPublishTweetQuery(tweetToPublish);

            return(_twitterAccessor.ExecuteJsonPOSTQuery(query));
        }
Пример #10
0
        private ITweetDTO PublishTweetDTOInReplyTo(ITweetDTO tweetToPublish, ITweetDTO tweetToReplyTo)
        {
            _uploadQueryExecutor.UploadTweetMediasBeforePublish(tweetToPublish);

            var tweetDTO = _tweetQueryExecutor.PublishTweetInReplyTo(tweetToPublish, tweetToReplyTo);

            return(tweetDTO);
        }
Пример #11
0
        private ITweetDTO PublishTweetDTO(ITweetDTO tweetToPublish)
        {
            _uploadQueryExecutor.UploadTweetMediasBeforePublish(tweetToPublish);

            var publishedTweetDTO = _tweetQueryExecutor.PublishTweet(tweetToPublish);

            return(publishedTweetDTO);
        }
Пример #12
0
 // Update Tweet
 public void UpdateTweetIfTweetSuccessfullyBeenPublished(ITweet sourceTweet, ITweetDTO publishedTweetDTO)
 {
     if (sourceTweet != null &&
         publishedTweetDTO != null &&
         publishedTweetDTO.IsTweetPublished)
     {
         sourceTweet.TweetDTO = publishedTweetDTO;
     }
 }
Пример #13
0
        // Destroy Tweet
        public string GetDestroyTweetQuery(ITweetDTO tweetDTO)
        {
            if (!_tweetQueryValidator.CanTweetDTOBeDestroyed(tweetDTO))
            {
                return(null);
            }

            return(GetDestroyTweetQuery(tweetDTO.Id));
        }
Пример #14
0
        // OEmbed Tweet
        public string GetGenerateOEmbedTweetQuery(ITweetDTO tweetDTO)
        {
            if (!_tweetQueryValidator.IsTweetPublished(tweetDTO))
            {
                return(null);
            }

            return(GetGenerateOEmbedTweetQuery(tweetDTO.Id));
        }
Пример #15
0
        public ITweet CreateTweet(ITweetDTO tweetDTO)
        {
            if (tweetDTO == null)
            {
                return(null);
            }

            return(new Tweet(tweetDTO, _client.ClientSettings.TweetMode, _client));
        }
Пример #16
0
        // Unfavourite Tweet
        public string GetUnFavouriteTweetQuery(ITweetDTO tweetDTO)
        {
            if (!_tweetQueryValidator.IsTweetPublished(tweetDTO))
            {
                return(null);
            }

            return(GetUnFavouriteTweetQuery(tweetDTO.Id));
        }
Пример #17
0
        // Publish Tweet in reply to
        public string GetPublishTweetInReplyToQuery(ITweetDTO tweetToPublish, ITweetDTO tweetToReplyTo)
        {
            if (!_tweetQueryValidator.CanTweetDTOBePublished(tweetToPublish) ||
                !_tweetQueryValidator.IsTweetPublished(tweetToReplyTo))
            {
                return(null);
            }

            return(GetPublishTweetInReplyToQuery(tweetToPublish, tweetToReplyTo.Id));
        }
Пример #18
0
        public bool CanTweetDTOBePublished(ITweetDTO tweet)
        {
            if (tweet == null)
            {
                return false;
            }

            var tooManyMedia = tweet.MediasToPublish != null && tweet.MediasToPublish.Count > 4;
            return !tweet.IsTweetPublished && !tweet.IsTweetDestroyed && !tooManyMedia;
        }
Пример #19
0
        public bool DestroyTweet(ITweetDTO tweetDTO)
        {
            if (tweetDTO == null)
            {
                return false;
            }

            tweetDTO.IsTweetDestroyed = _tweetQueryExecutor.DestroyTweet(tweetDTO);
            return tweetDTO.IsTweetDestroyed;
        }
Пример #20
0
        public ITweet PublishTweetWithGeo(ITweetDTO tweetToPublishDTO, ICoordinates coordinates)
        {
            if (tweetToPublishDTO == null)
            {
                throw new ArgumentException("TweetDTO cannot be null!");
            }

            tweetToPublishDTO.Coordinates = coordinates;
            return(PublishTweet(tweetToPublishDTO));
        }
Пример #21
0
        private ITweet GenerateTweet(ITweetDTO tweetDTO = null)
        {
            var tweet = A.Fake <ITweet>();

            tweet.TweetDTO = tweetDTO;
            tweet.CallsTo(x => x.IsTweetPublished).ReturnsLazily(() => tweet.TweetDTO != null && tweet.TweetDTO.IsTweetPublished);
            _fakeTweetFactory.CallsTo(x => x.GenerateTweetFromDTO(tweetDTO)).Returns(tweet);

            return(tweet);
        }
Пример #22
0
        public ITweet PublishTweetWithGeoInReplyTo(ITweetDTO tweetToPublishDTO, ICoordinates coordinates, long tweetIdToReplyTo)
        {
            if (tweetToPublishDTO == null)
            {
                throw new ArgumentException("TweetDTO cannot be null!");
            }

            tweetToPublishDTO.Coordinates = coordinates;
            return(PublishTweetInReplyTo(tweetToPublishDTO, tweetIdToReplyTo));
        }
Пример #23
0
        public bool DestroyTweet(ITweetDTO tweetDTO)
        {
            if (tweetDTO == null)
            {
                return(false);
            }

            tweetDTO.IsTweetDestroyed = _tweetQueryExecutor.DestroyTweet(tweetDTO);
            return(tweetDTO.IsTweetDestroyed);
        }
Пример #24
0
        private long[] GetTweetMediaIdsToPublish(ITweetDTO tweetToPublish)
        {
            if (tweetToPublish.MediasToPublish == null)
            {
                return(new long[] { });
            }

            var tweetMedias = tweetToPublish.MediasToPublish.Where(x => x.UploadedMediaInfo != null);

            return(tweetMedias.Select(x => x.UploadedMediaInfo.MediaId).ToArray());
        }
Пример #25
0
        public bool CanTweetDTOBePublished(ITweetDTO tweet)
        {
            if (tweet == null)
            {
                return(false);
            }

            var tooManyMedia = tweet.MediasToPublish != null && tweet.MediasToPublish.Count > 4;

            return(!tweet.IsTweetPublished && !tweet.IsTweetDestroyed && !tooManyMedia);
        }
Пример #26
0
        public bool FavoriteTweet(ITweetDTO tweetDTO)
        {
            if (tweetDTO == null)
            {
                return(false);
            }

            // if the favourite operation failed the tweet should still be favourited if it previously was
            tweetDTO.Favourited |= _tweetQueryExecutor.FavouriteTweet(tweetDTO);
            return(tweetDTO.Favourited);
        }
Пример #27
0
        // Publish Tweet
        public string GetPublishTweetQuery(ITweetDTO tweetDTO)
        {
            if (!_tweetQueryValidator.CanTweetDTOBePublished(tweetDTO))
            {
                return(null);
            }

            string baseQuery = String.Format(Resources.Tweet_Publish, CleanupString(tweetDTO.Text));

            return(AddAdditionalParameters(tweetDTO, baseQuery));
        }
Пример #28
0
        public string GetPublishTweetInReplyToQuery(ITweetDTO tweetToPublish, long tweetIdToRespondTo)
        {
            if (!_tweetQueryValidator.CanTweetDTOBePublished(tweetToPublish))
            {
                return(null);
            }

            string baseQuery = String.Format(Resources.Tweet_PublishInReplyTo, CleanupString(tweetToPublish.Text), tweetIdToRespondTo);

            return(AddAdditionalParameters(tweetToPublish, baseQuery));
        }
Пример #29
0
        // Generate Mention from DTO
        public IMention GenerateMentionFromDTO(ITweetDTO tweetDTO)
        {
            if (tweetDTO == null)
            {
                return(null);
            }

            var parameterOverride = _mentionUnityFactory.GenerateParameterOverrideWrapper("tweetDTO", tweetDTO);
            var mention           = _mentionUnityFactory.Create(parameterOverride);

            return(mention);
        }
        public async Task <IActionResult> GetFirstAndLastAsync(string screenName)
        {
            var userIdentifier = new UserIdentifier(screenName);

            var tweets = await GetTweets(screenName);

            var orderedTweets = tweets.OrderBy(x => x.CreatedAt);

            ITweetDTO[] response = new ITweetDTO[] { orderedTweets.FirstOrDefault(), orderedTweets.LastOrDefault() };

            return(Ok(response));
        }
Пример #31
0
        // Generate Tweet From DTO
        public ITweet GenerateTweetFromDTO(ITweetDTO tweetDTO)
        {
            if (tweetDTO == null)
            {
                return null;
            }

            var parameterOverride = _tweetUnityFactory.GenerateParameterOverrideWrapper("tweetDTO", tweetDTO);
            var tweet = _tweetUnityFactory.Create(parameterOverride);

            return tweet;
        }
Пример #32
0
        // Generate Tweet From DTO
        public ITweet GenerateTweetFromDTO(ITweetDTO tweetDTO)
        {
            if (tweetDTO == null)
            {
                return(null);
            }

            var parameterOverride = _tweetUnityFactory.GenerateParameterOverrideWrapper("tweetDTO", tweetDTO);
            var tweet             = _tweetUnityFactory.Create(parameterOverride);

            return(tweet);
        }
Пример #33
0
        public Tweet(
            ITweetDTO tweetDTO,
            ITweetController tweetController,
            ITweetFactory tweetFactory,
            IUserFactory userFactory)
        {
            _tweetController = tweetController;
            _tweetFactory    = tweetFactory;
            _userFactory     = userFactory;

            TweetDTO = tweetDTO;
        }
Пример #34
0
        public Mention(
            ITweetDTO tweetDTO,
            ITweetController tweetController,
            ITweetFactory tweetFactory,
            IUserFactory userFactory)

            : base(tweetDTO,
                   tweetController,
                   tweetFactory,
                   userFactory)
        {
            // Default constructor inheriting from the default Tweet constructor
        }
Пример #35
0
        public void Save(ITweetDTO dto)
        {
            var textItem = cleanup.Cleanup(dto.Text);
            var text     = $"{dto.CreatedAt}\t{dto.Id}\t{dto.CreatedBy.Id}\t{dto.Retweeted}\t{textItem}\r\n";

            lock (syncRoot)
            {
                var stream = streamSource.GetStream();
                var data   = Encoding.UTF8.GetBytes(text);
                stream.Write(data, 0, data.Length);
                stream.Flush();
            }
        }
Пример #36
0
 public Mention(
     ITweetDTO tweetDTO,
     ITweetController tweetController,
     ITweetFactory tweetFactory,
     IUserFactory userFactory,
     ITaskFactory taskFactory)
     : base(tweetDTO,
                tweetController,
                tweetFactory,
                userFactory,
                taskFactory)
 {
     // Default constructor inheriting from the default Tweet constructor
 }
Пример #37
0
        public void ThrowIfTweetCannotBeUsed(ITweetDTO tweet)
        {
            if (tweet == null)
            {
                throw new ArgumentNullException("Tweet cannot be null.");
            }

            if (!tweet.IsTweetPublished)
            {
                throw new ArgumentException("Tweet must have been already published to be destroyed.");
            }

            if (tweet.IsTweetDestroyed)
            {
                throw new ArgumentException("Tweet has been destroyed.");
            }
        }
Пример #38
0
 public IOEmbedTweet GenerateOEmbedTweet(ITweetDTO tweetDTO)
 {
     var oembedTweetDTO = _tweetQueryExecutor.GenerateOEmbedTweet(tweetDTO);
     return _tweetFactory.GenerateOEmbedTweetFromDTO(oembedTweetDTO);
 }
Пример #39
0
 public bool UnFavoriteTweet(ITweetDTO tweetDTO)
 {
     return _tweetQueryExecutor.UnFavouriteTweet(tweetDTO);
 }
Пример #40
0
 // Publish Retweet
 public string GetPublishRetweetQuery(ITweetDTO tweetDTO)
 {
     _tweetQueryValidator.ThrowIfTweetCannotBeUsed(tweetDTO);
     return GetPublishRetweetQuery(tweetDTO.Id);
 }
Пример #41
0
        // Generate Mention from DTO
        public IMention GenerateMentionFromDTO(ITweetDTO tweetDTO)
        {
            if (tweetDTO == null)
            {
                return null;
            }

            var parameterOverride = _mentionUnityFactory.GenerateParameterOverrideWrapper("tweetDTO", tweetDTO);
            var mention = _mentionUnityFactory.Create(parameterOverride);

            return mention;
        }
Пример #42
0
        public string PublishTweet(ITweetDTO tweetToPublish)
        {
            _uploadQueryExecutor.UploadTweetMediasBeforePublish(tweetToPublish);

            string query = _tweetQueryGenerator.GetPublishTweetQuery(tweetToPublish);
            return _twitterAccessor.ExecuteJsonPOSTQuery(query);
        }
Пример #43
0
 public string UnFavouriteTweet(ITweetDTO tweetDTO)
 {
     string query = _tweetQueryGenerator.GetUnFavouriteTweetQuery(tweetDTO);
     return _twitterAccessor.ExecuteJsonPOSTQuery(query);
 }
Пример #44
0
 public static string UnFavouriteTweet(ITweetDTO tweetDTO)
 {
     return TweetJsonController.UnFavouriteTweet(tweetDTO);
 }
Пример #45
0
 public ITweet PublishRetweet(ITweetDTO tweet)
 {
     var tweetDTO = _tweetQueryExecutor.PublishRetweet(tweet);
     return _tweetFactory.GenerateTweetFromDTO(tweetDTO);
 }
Пример #46
0
 // Destroy Tweet
 public string GetDestroyTweetQuery(ITweetDTO tweetDTO)
 {
     _tweetQueryValidator.ThrowIfTweetCannotBeDestroyed(tweetDTO);
     return GetDestroyTweetQuery(tweetDTO.Id);
 }
Пример #47
0
 public static string DestroyTweet(ITweetDTO tweetDTO)
 {
     return TweetJsonController.DestroyTweet(tweetDTO);
 }
Пример #48
0
 public static ITweet GenerateTweetFromDTO(ITweetDTO tweetDTO)
 {
     return TweetFactory.GenerateTweetFromDTO(tweetDTO);
 }
Пример #49
0
        public IEnumerable<ITweetDTO> SearchRepliesTo(ITweetDTO tweetDTO, bool recursiveReplies)
        {
            if (tweetDTO == null)
            {
                throw new ArgumentException("TweetDTO cannot be null");
            }

            var searchTweets = SearchTweets(string.Format(tweetDTO.CreatedBy.ScreenName)).ToList();

            if (recursiveReplies)
            {
                return GetRecursiveReplies(searchTweets, tweetDTO.Id);
            }

            var repliesDTO = searchTweets.Where(x => x.InReplyToStatusId == tweetDTO.Id);
            return repliesDTO;
        }
Пример #50
0
 // OEmbed Tweet
 public string GetGenerateOEmbedTweetQuery(ITweetDTO tweetDTO)
 {
     _tweetQueryValidator.ThrowIfTweetCannotBeUsed(tweetDTO);
     return GetGenerateOEmbedTweetQuery(tweetDTO.Id);
 }
Пример #51
0
        public bool FavoriteTweet(ITweetDTO tweetDTO)
        {
            if (tweetDTO == null)
            {
                return false;
            }

            // if the favourite operation failed the tweet should still be favourited if it previously was
            tweetDTO.Favourited |= _tweetQueryExecutor.FavouriteTweet(tweetDTO);
            return tweetDTO.Favourited;
        }
Пример #52
0
 public static string GenerateOEmbedTweet(ITweetDTO tweetDTO)
 {
     return TweetJsonController.GenerateOEmbedTweet(tweetDTO);
 }
Пример #53
0
 public IEnumerable<ITweet> GetRetweets(ITweetDTO tweet)
 {
     var retweetsDTO = _tweetQueryExecutor.GetRetweets(tweet);
     return _tweetFactory.GenerateTweetsFromDTO(retweetsDTO);
 }
Пример #54
0
 public static string PublishTweetInReplyTo(ITweetDTO tweetToPublish, long tweetIdToReplyTo)
 {
     return TweetJsonController.PublishTweetInReplyTo(tweetToPublish, tweetIdToReplyTo);
 }
Пример #55
0
        public Tweet(
            ITweetDTO tweetDTO,
            ITweetController tweetController,
            ITweetFactory tweetFactory,
            IUserFactory userFactory,
            ITaskFactory taskFactory,
            IFactory<IMedia> mediaFactory)
        {
            _tweetController = tweetController;
            _tweetFactory = tweetFactory;
            _userFactory = userFactory;
            _taskFactory = taskFactory;
            _mediaFactory = mediaFactory;

            TweetDTO = tweetDTO;
        }
Пример #56
0
 public static string PublishRetweet(ITweetDTO tweetDTO)
 {
     return TweetJsonController.PublishRetweet(tweetDTO);
 }
Пример #57
0
 public string GenerateOEmbedTweet(ITweetDTO tweet)
 {
     string query = _tweetQueryGenerator.GetGenerateOEmbedTweetQuery(tweet);
     return _twitterAccessor.ExecuteJsonGETQuery(query);
 }
Пример #58
0
 public static string GetRetweets(ITweetDTO tweetDTO)
 {
     return TweetJsonController.GetRetweets(tweetDTO);
 }
Пример #59
0
 // Update Tweet
 public void UpdateTweetIfTweetSuccessfullyBeenPublished(ITweet sourceTweet, ITweetDTO publishedTweetDTO)
 {
     if (sourceTweet != null &&
         publishedTweetDTO != null &&
         publishedTweetDTO.IsTweetPublished)
     {
         sourceTweet.TweetDTO = publishedTweetDTO;
     }
 }
Пример #60
0
 public void UploadTweetMediasBeforePublish(ITweetDTO tweetToPublish)
 {
     if (_tweetQueryValidator.CanTweetDTOBePublished(tweetToPublish))
     {
         UploadMedias(tweetToPublish.MediasToPublish, false);
     }
 }