Example #1
0
        // Generate Tweet from Json
        public ITweet GenerateTweetFromJson(string json, TweetMode?tweetMode = null)
        {
            var tweetDTO = _jsonObjectConverter.DeserializeObject <ITweetDTO>(json);

            if (tweetDTO == null || tweetDTO.Id == TweetinviSettings.DEFAULT_ID)
            {
                return(null);
            }

            return(GenerateTweetFromDTO(tweetDTO, tweetMode));
        }
        private void TryRaiseTweetCreatedEvents(string eventName, JObject jsonObjectEvent)
        {
            var tweetCreatedEvent     = jsonObjectEvent[eventName];
            var tweetCreatedEventJson = tweetCreatedEvent.ToString();
            var tweetDTOs             = _jsonObjectConverter.DeserializeObject <ITweetDTO[]>(tweetCreatedEventJson);

            tweetDTOs.ForEach(tweetDTO =>
            {
                var tweet = _tweetFactory.GenerateTweetFromDTO(tweetDTO);
                this.Raise(TweetCreated, new TweetReceivedEventArgs(tweet, ""));
            });
        }
Example #3
0
        private ICredentialsRateLimits GetTokenRateLimitsFromTwitter(ITwitterCredentials credentials)
        {
            var isApplicationOnlyCreds = string.IsNullOrEmpty(credentials.AccessToken) || string.IsNullOrEmpty(credentials.AccessTokenSecret);

            if (isApplicationOnlyCreds && string.IsNullOrEmpty(credentials.ApplicationOnlyBearerToken))
            {
                return(null);
            }

            var result = _credentialsAccessor.ExecuteOperationWithCredentials(credentials, () =>
            {
                var twitterQuery = _twitterQueryFactory.Create(_helpQueryGenerator.GetCredentialsLimitsQuery(), HttpMethod.GET, credentials);

                try
                {
                    var webRequestResult = _webRequestExecutor.ExecuteQuery(twitterQuery);
                    var json             = webRequestResult.Text;

                    return(_jsonObjectConverter.DeserializeObject <ICredentialsRateLimits>(json));
                }
                catch (TwitterException)
                {
                    return(null);
                }
            });

            return(result);
        }
Example #4
0
        public async Task <IGetWebhookSubscriptionsCountResultDTO> CountNumberOfSubscriptionsAsync(
            IConsumerOnlyCredentials credentials)
        {
            var query = "https://api.twitter.com/1.1/account_activity/subscriptions/count.json";

            var result = _twitterAccessor.ExecuteQuery(query, HttpMethod.GET, credentials, null);

            if (result.StatusCode == 32)
            {
                return(null);
            }

            var subscriptionsCount = _jsonObjectConverter.DeserializeObject <IGetWebhookSubscriptionsCountResultDTO>(result.Text);

            return(await Task.FromResult(subscriptionsCount));
        }
        private ITokenRateLimits GetTokenRateLimitsFromTwitter(ITwitterCredentials credentials)
        {
            if (_isRetrievingData)
            {
                return(null);
            }

            var isApplicationOnlyCreds = string.IsNullOrEmpty(credentials.AccessToken) || string.IsNullOrEmpty(credentials.AccessTokenSecret);

            if (isApplicationOnlyCreds && string.IsNullOrEmpty(credentials.ApplicationOnlyBearerToken))
            {
                return(null);
            }

            _isRetrievingData = true;
            var result = _credentialsAccessor.ExecuteOperationWithCredentials(credentials, () =>
            {
                var twitterQuery = _twitterQueryFactory.Create(_helpQueryGenerator.GetCredentialsLimitsQuery(), HttpMethod.GET, credentials);

                try
                {
                    string jsonResponse = _twitterRequester.ExecuteQuery(twitterQuery);
                    return(_jsonObjectConverter.DeserializeObject <ITokenRateLimits>(jsonResponse));
                }
                catch (TwitterException)
                {
                    return(null);
                }
            });

            _isRetrievingData = false;
            return(result);
        }
Example #6
0
        public IAccountSettings GenerateAccountSettingsFromJson(string json)
        {
            var accountSettingsDTO = _jsonObjectConverter.DeserializeObject <IAccountSettingsDTO>(json);

            if (accountSettingsDTO == null)
            {
                return(null);
            }

            return(GenerateAccountSettingsFromDTO(accountSettingsDTO));
        }
Example #7
0
        // Generate Message from Json
        public IMessage GenerateMessageFromJson(string jsonMessage)
        {
            var messageDTO = _jsonObjectConverter.DeserializeObject <IMessageDTO>(jsonMessage);

            if (messageDTO.Id == TweetinviSettings.DEFAULT_ID)
            {
                return(null);
            }

            return(GenerateMessageFromMessageDTO(messageDTO));
        }
Example #8
0
        // Generate Tweet from Json
        public ITweet GenerateTweetFromJson(string jsonTweet)
        {
            var tweetDTO = _jsonObjectConverter.DeserializeObject <ITweetDTO>(jsonTweet);

            if (tweetDTO.Id == TweetinviConfig.DEFAULT_ID)
            {
                return(null);
            }

            return(GenerateTweetFromDTO(tweetDTO));
        }
Example #9
0
        // Generate SavedSearch from Json
        public ISavedSearch GenerateSavedSearchFromJson(string json)
        {
            var savedSearchDTO = _jsonObjectConverter.DeserializeObject <ISavedSearchDTO>(json);

            if (savedSearchDTO == null || savedSearchDTO.Id == TweetinviSettings.DEFAULT_ID)
            {
                return(null);
            }

            return(GenerateSavedSearchFromDTO(savedSearchDTO));
        }
Example #10
0
        // Generate Message from Json
        public IMessage GenerateMessageFromJson(string jsonMessage)
        {
            var eventWithAppDTO = _jsonObjectConverter.DeserializeObject <IEventWithAppDTO>(jsonMessage);

            if (eventWithAppDTO.Event == null || eventWithAppDTO.Event.Type != EventType.MessageCreate ||
                eventWithAppDTO.Event.Id == TweetinviSettings.DEFAULT_ID)
            {
                return(null);
            }

            return(GenerateMessageFromEventWithAppDTO(eventWithAppDTO));
        }
Example #11
0
        private ITokenRateLimits GetTokenRateLimitsFromTwitter(IOAuthCredentials credentials)
        {
            if (_isRetrievingData)
            {
                return(null);
            }

            _isRetrievingData = true;
            var result = _credentialsAccessor.ExecuteOperationWithCredentials(credentials, () =>
            {
                var twitterQuery    = _twitterQueryFactory.Create(_helpQueryGenerator.GetCredentialsLimitsQuery(), HttpMethod.GET, credentials);
                string jsonResponse = _twitterRequester.ExecuteQuery(twitterQuery);
                return(_jsonObjectConverter.DeserializeObject <ITokenRateLimits>(jsonResponse));
            });

            _isRetrievingData = false;
            return(result);
        }
Example #12
0
        private void TryRaiseTweetDeleted(JToken jToken)
        {
            jToken = jToken["status"];
            if (jToken == null)
            {
                return;
            }

            var deletedTweetInfo      = _jsonObjectConverter.DeserializeObject <TweetDeletedInfo>(jToken.ToString());
            var deletedTweetEventArgs = new TweetDeletedEventArgs(deletedTweetInfo);

            this.Raise(TweetDeleted, deletedTweetEventArgs);
        }
Example #13
0
        public ITweetList GenerateTweetListFromJson(string jsonList)
        {
            var tweetListDTO = _jsonObjectConverter.DeserializeObject <ITweetListDTO>(jsonList);

            return(GenerateTweetListFromDTO(tweetListDTO));
        }
Example #14
0
        private async Task Process(string[] files)
        {
            var monitor = new PerformanceMonitor(files.Length);

            using (Observable.Interval(TimeSpan.FromSeconds(30)).Subscribe(item => log.LogInformation(monitor.ToString())))
            {
                var inputBlock = new BufferBlock <ProcessingChunk <string> >(new DataflowBlockOptions {
                    BoundedCapacity = 1000000
                });
                var deserializeBlock = new TransformBlock <ProcessingChunk <string>, ProcessingChunk <TweetDTO> >(
                    json => new ProcessingChunk <TweetDTO>(json.FileName, json.ChunkId, json.TotalChunks, jsonConvert.DeserializeObject <TweetDTO>(json.Data)),
                    new ExecutionDataflowBlockOptions
                {
                    BoundedCapacity        = 2,
                    MaxDegreeOfParallelism = Environment.ProcessorCount
                });
                var outputBlock = new ActionBlock <ProcessingChunk <TweetDTO> >(
                    Deserialized,
                    new ExecutionDataflowBlockOptions {
                    MaxDegreeOfParallelism = Environment.ProcessorCount
                });

                inputBlock.LinkTo(deserializeBlock, new DataflowLinkOptions {
                    PropagateCompletion = true
                });
                deserializeBlock.LinkTo(outputBlock, new DataflowLinkOptions {
                    PropagateCompletion = true
                });

                foreach (var file in files)
                {
                    try
                    {
                        var data = fileLoader.Load(file);
                        for (var i = 0; i < data.Length; i++)
                        {
                            await inputBlock.SendAsync(new ProcessingChunk <string>(file, i, data.Length, data[i])).ConfigureAwait(false);
                        }

                        monitor.Increment();
                    }
                    catch (Exception ex)
                    {
                        log.LogError(ex, "Failed");
                    }
                }

                inputBlock.Complete();
                await Task.WhenAll(inputBlock.Completion, outputBlock.Completion).ConfigureAwait(false);
            }
        }
Example #15
0
        // Execute<T>
        public T ExecuteGETQuery <T>(string query, JsonConverter[] converters = null) where T : class
        {
            string jsonResponse = ExecuteQuery(query, HttpMethod.GET);

            return(_jsonObjectConverter.DeserializeObject <T>(jsonResponse, converters));
        }
Example #16
0
        // Generate User from Json
        public IUser GenerateUserFromJson(string jsonUser)
        {
            var userDTO = _jsonObjectConverter.DeserializeObject <IUserDTO>(jsonUser);

            return(GenerateUserFromDTO(userDTO));
        }
        public ITwitterList GenerateListFromJson(string json)
        {
            var listDTO = _jsonObjectConverter.DeserializeObject <ITwitterListDTO>(json);

            return(CreateListFromDTO(listDTO));
        }
Example #18
0
        public IRelationshipDetails GenerateFriendshipDetailsFromJson(string json)
        {
            var dto = _jsonObjectConverter.DeserializeObject <IRelationshipDetailsDTO>(json);

            return(GenerateRelationshipFromRelationshipDTO(dto));
        }