/// <summary>
        ///     Create new API instance
        /// </summary>
        /// <returns>
        ///     API instance
        /// </returns>
        /// <exception cref="ArgumentNullException">User auth data must be specified</exception>
        public IInstaApi Build()
        {
            if (_user == null)
            {
                throw new ArgumentNullException("User auth data must be specified");
            }
            if (_httpClient == null)
            {
                _httpClient = new HttpClient(_httpHandler)
                {
                    BaseAddress = new Uri(InstaApiConstants.INSTAGRAM_URL)
                }
            }
            ;

            if (_requestMessage == null)
            {
                if (_device == null)
                {
                    _device = AndroidDeviceGenerator.GetRandomAndroidDevice();
                }
                _requestMessage = new ApiRequestMessage
                {
                    PhoneId  = _device.PhoneGuid.ToString(),
                    Guid     = _device.DeviceGuid,
                    Password = _user?.Password,
                    Username = _user?.UserName,
                    DeviceId = ApiRequestMessage.GenerateDeviceId(),
                    AdId     = _device.AdId.ToString()
                };
            }

            if (string.IsNullOrEmpty(_requestMessage.Password))
            {
                _requestMessage.Password = _user?.Password;
            }
            if (string.IsNullOrEmpty(_requestMessage.Username))
            {
                _requestMessage.Username = _user?.UserName;
            }

            if (_device == null && !string.IsNullOrEmpty(_requestMessage.DeviceId))
            {
                _device = AndroidDeviceGenerator.GetById(_requestMessage.DeviceId);
            }
            if (_device == null)
            {
                AndroidDeviceGenerator.GetRandomAndroidDevice();
            }

            if (_httpRequestProcessor == null)
            {
                _httpRequestProcessor =
                    new HttpRequestProcessor(_delay, _httpClient, _httpHandler, _requestMessage, _logger);
            }

            var instaApi = new InstaApi(_user, _logger, _device, _httpRequestProcessor);

            return(instaApi);
        }
 public UserProcessor(UserSessionData user, IHttpRequestProcessor httpRequestProcessor,
                      IInstaLogger logger)
 {
     _user = user;
     _httpRequestProcessor = httpRequestProcessor;
     _logger = logger;
 }
Beispiel #3
0
 public GrepRequestEndpoint(
     IPostHttpMethod postHttpMethod,
     IHttpRequestProcessor <IHttpEndpoint <GrepRequest, string> > httpRequestProcessor,
     IRequireAuthenticationFilter requireAuthenticationFilter,
     IGrepRequestUnbinder unbinder,
     IGrepRequestValidator validator,
     IGrepRequestPerformer performer,
     IGrepRequestFailureHandler stringFailureHandler,
     IStringResponseWritter stringResponseWritter)
 {
     HttpRequestDescriptor = new GenericRequestDescriptor
     {
         HttpMethod       = postHttpMethod,
         RouteDescription = "grep/{for}"
     };
     HttpRequestProcessor = httpRequestProcessor;
     BeforePerformActions = new List <IPrePerformAction> {
         requireAuthenticationFilter
     };
     ResponseWritter       = stringResponseWritter;
     HttpRequestUnbinder   = unbinder;
     Performer             = performer;
     RequestValidator      = validator;
     RequestFailureHandler = stringFailureHandler;
 }
Beispiel #4
0
        public GhtkApi()
        {
            var httpClientHandler = new HttpClientHandler();
            var httpClient        = new HttpClient(httpClientHandler);

            _httpRequestProcessor = new HttpRequestProcessor(httpClient, httpClientHandler);
        }
Beispiel #5
0
 public InstaApi(UserSessionData user, IInstaLogger logger, AndroidDevice deviceInfo,
                 IHttpRequestProcessor httpRequestProcessor)
 {
     _user                 = user;
     _logger               = logger;
     _deviceInfo           = deviceInfo;
     _httpRequestProcessor = httpRequestProcessor;
 }
 public CommentProcessor(AndroidDevice deviceInfo, UserSessionData user,
                         IHttpRequestProcessor httpRequestProcessor, IInstaLogger logger)
 {
     _deviceInfo           = deviceInfo;
     _user                 = user;
     _httpRequestProcessor = httpRequestProcessor;
     _logger               = logger;
 }
Beispiel #7
0
 public MediaProcessor(AndroidDevice deviceInfo, UserSessionData user,
                       IHttpRequestProcessor httpRequestProcessor, IInstaLogger logger, UserAuthValidate userAuthValidate)
 {
     _deviceInfo           = deviceInfo;
     _user                 = user;
     _httpRequestProcessor = httpRequestProcessor;
     _logger               = logger;
     _userAuthValidate     = userAuthValidate;
 }
Beispiel #8
0
        public InstaScraper(UserSessionData user, IInstaLogger logger,
                            IHttpRequestProcessor httpRequestProcessor)
        {
            _user   = user;
            _logger = logger;
            _httpRequestProcessor = httpRequestProcessor;

            InvalidateProcessors();
        }
Beispiel #9
0
        private void processRequest(ReceiveHeaderCompleteEventArgs e)
        {
            logger.Debug("{0} process request", _connectionToken.Substring(0, 6));

            if (_lastProcessor != null)
            {
                _lastProcessor.Close();
            }

            HttpRequestHeader requestHeader = (HttpRequestHeader)e.LastReceiveHeader;

            logger.Debug("{0} receive new request: {1}, url: {2}",
                         _connectionToken.Substring(0, 6),
                         requestHeader.Method,
                         requestHeader.Url);

            //check if keep connection alive
            _clientKeepAlive = (requestHeader.Connection == null ||
                                String.Compare(requestHeader.Connection, "keep-alive", true) == 0);

            _lastResponseHeader        = new HttpResponseHeader();
            _lastResponseHeader.Date   = DateTime.Now.ToUniversalTime();
            _lastResponseHeader.Server = HttpServiceControler.SERVER_NAME;

            HandlerContext context = new HandlerContext(
                requestHeader, _lastResponseHeader, _bindEndPoint, _bindEndPointName, _clientIp, _connectionToken);

            _lastProcessor = _processorFactory.CreateProcessor(context);
            _lastProcessor.ProcessRequest(context);

            //request contains body
            if (requestHeader.ContentLength > 0)
            {
                if (_lastProcessor.RequestBodyAcceptable)
                {
                    //continue to receive reqeust body
                    _workStatus = SessionWorkStatus.ReceivingRequestBody;
                    e.TotalPlanReceivingLength = requestHeader.ContentLength;
                }
                else
                {
                    //NOTE::
                    //can not accept request body, because
                    //some http method (GET,HEAD,DELETE) should not contain request body
                    //or POST,PUT access deny.
                    logger.Warn("{0} processor {1} can not accept request body",
                                _connectionToken.Substring(0, 6),
                                _lastProcessor.GetType().Name);
                    Close();
                }
            }
            else
            {
                sendResponse();
            }
        }
Beispiel #10
0
 public UserProcessor(AndroidDevice deviceInfo, UserSessionData user, IHttpRequestProcessor httpRequestProcessor,
                      IInstaLogger logger, UserAuthValidate userAuthValidate, InstaApi instaApi)
 {
     _deviceInfo           = deviceInfo;
     _user                 = user;
     _httpRequestProcessor = httpRequestProcessor;
     _logger               = logger;
     _userAuthValidate     = userAuthValidate;
     _instaApi             = instaApi;
 }
 public UserProcessor(UserSessionData user,
                      IHttpRequestProcessor httpRequestProcessor, IPinLogger logger,
                      UserAuthValidate userAuthValidate, PinApi pinapi, HttpHelper httpHelper)
 {
     _user = user;
     _httpRequestProcessor = httpRequestProcessor;
     _logger           = logger;
     _userAuthValidate = userAuthValidate;
     _httpHelper       = httpHelper;
 }
 //private readonly UserAuthValidate _userAuthValidate;
 public TransitoProcessor(UserSessionData user,
                          IHttpRequestProcessor httpRequestProcessor /*,IGobiernoLogger logger,*/
                          /*UserAuthValidate userAuthValidate*/, GobiernoApi gobiernoApi, HttpHelper httpHelper)
 {
     _user = user;
     _httpRequestProcessor = httpRequestProcessor;
     //_logger = logger;
     _gobiernoApi = gobiernoApi;
     _httpHelper  = httpHelper;
 }
Beispiel #13
0
 public Application(
     IApplicationArgumentsGetter applicationArgumentsGetter,
     ILoggingSystemInitializer loggingSystemInitializer,
     IFileReader<Configuration.Configuration> configurationReader,
     ITcpServer tcpServer, IHttpRequestProcessor httpRequestProcessor)
 {
     _applicationArgumentsGetter = applicationArgumentsGetter;
     _loggingSystemInitializer = loggingSystemInitializer;
     _configurationReader = configurationReader;
     _tcpServer = tcpServer;
     _httpRequestProcessor = httpRequestProcessor;
 }
Beispiel #14
0
 public Application(
     IApplicationArgumentsGetter applicationArgumentsGetter,
     ILoggingSystemInitializer loggingSystemInitializer,
     IFileReader <Configuration.Configuration> configurationReader,
     ITcpServer tcpServer, IHttpRequestProcessor httpRequestProcessor)
 {
     _applicationArgumentsGetter = applicationArgumentsGetter;
     _loggingSystemInitializer   = loggingSystemInitializer;
     _configurationReader        = configurationReader;
     _tcpServer            = tcpServer;
     _httpRequestProcessor = httpRequestProcessor;
 }
Beispiel #15
0
        public IInstaApi Build()
        {
            if (_httpClient == null)
            {
                _httpClient = new HttpClient(_httpHandler)
                {
                    BaseAddress = new Uri(InstaApiConstants.INSTAGRAM_URL)
                }
            }
            ;

            if (_requestMessage == null)
            {
                _device         = AndroidDeviceGenerator.GetRandomAndroidDevice();
                _requestMessage = new ApiRequestMessage
                {
                    phone_id  = _device.PhoneGuid.ToString(),
                    guid      = _device.DeviceGuid,
                    password  = _user?.Password,
                    username  = _user?.UserName,
                    device_id = ApiRequestMessage.GenerateDeviceId()
                };
            }


            if (string.IsNullOrEmpty(_requestMessage.password))
            {
                _requestMessage.password = _user?.Password;
            }
            if (string.IsNullOrEmpty(_requestMessage.username))
            {
                _requestMessage.username = _user?.UserName;
            }
            if (_device == null && !string.IsNullOrEmpty(_requestMessage.device_id))
            {
                _device = AndroidDeviceGenerator.GetById(_requestMessage.device_id);
            }
            if (_device == null)
            {
                AndroidDeviceGenerator.GetRandomAndroidDevice();
            }

            if (_httpRequestProcessor == null)
            {
                _httpRequestProcessor =
                    new HttpRequestProcessor(_delay, _httpClient, _httpHandler, _requestMessage, _logger);
            }

            var instaApi = new InstaApi(_user, _logger, _device, _httpRequestProcessor);

            return(instaApi);
        }
Beispiel #16
0
 public RegistrationService(AndroidDevice deviceInfo, UserSessionData user,
                            IHttpRequestProcessor httpRequestProcessor, IInstaLogger logger,
                            UserAuthValidate userAuthValidate, InstaApi instaApi, HttpHelper httpHelper)
 {
     _deviceInfo             = deviceInfo;
     _user                   = user;
     _httpRequestProcessor   = httpRequestProcessor;
     _logger                 = logger;
     _userAuthValidate       = userAuthValidate;
     _instaApi               = instaApi;
     _httpHelper             = httpHelper;
     RegistrationWaterfallId = Guid.NewGuid().ToString();
     Birthday                = GenerateRandomBirthday();
 }
        public IGobiernoApi Build()
        {
            if (_user == null)
            {
                _user = UserSessionData.Empty;
            }

            if (_httpHandler == null)
            {
                _httpHandler = new HttpClientHandler();
            }

            if (_httpClient == null)
            {
                _httpClient = new HttpClient(_httpHandler)
                {
                    BaseAddress = new Uri(GobiernoApiConstants.GOBIERNO_API_URL)
                }
            }
            ;



            //try
            //{
            //    GobiernoApiConstants.TIMEZONE_OFFSET = int.Parse(DateTimeOffset.Now.Offset.TotalSeconds.ToString());
            //}
            //catch { }

            if (_httpRequestProcessor == null)
            {
                _httpRequestProcessor =
                    new HttpRequestProcessor(_httpClient, _httpHandler /*,_logger*/);
            }

            if (_apiVersionType == null)
            {
                _apiVersionType = GobiernoApiVersionType.v1;
            }

            var instaApi = new GobiernoApi(_user, /*_logger, */ _httpRequestProcessor, _apiVersionType.Value);

            //if (_sessionHandler != null)
            //{
            //    _sessionHandler.GobiernoApi = instaApi;
            //    instaApi.SessionHandler = _sessionHandler;
            //}
            return(instaApi);
        }
Beispiel #18
0
        public static async Task <string> GetDefaultHtmlText(string url, IHttpRequestProcessor httpRequestProcessor)
        {
            var uri      = new Uri(url);
            var request  = HttpHelper.GetDefaultRequest(HttpMethod.Get, uri);
            var response = await httpRequestProcessor.GetAsync(uri);

            var html = await response.Content.ReadAsStringAsync();

            if (response.StatusCode != HttpStatusCode.OK)
            {
                return(null);
            }

            return(html);
        }
        public GobiernoApi(UserSessionData user, /*IGobiernoLogger logger,*/
                           IHttpRequestProcessor httpRequestProcessor, GobiernoApiVersionType apiVersionType)
        {
            //_logger = logger;

            _httpRequestProcessor = httpRequestProcessor;
            _apiVersionType       = apiVersionType;
            _apiVersion           = GobiernoApiVersionList.GetApiVersionList().GetApiVersion(apiVersionType);
            _httpHelper           = new HttpHelper(/*_apiVersion,*/ httpRequestProcessor, this);
            _userSession          = user;

            LoadStateDataFromObject(new StateData {
                UserSession = _user
            });
        }
 public ClientValidationsEndpoint(
     IStringResponseWritter stringResponseWritter,
     IJavascriptSourcePerformer javascriptSourcePerformer,
     IHttpRequestProcessor <IHttpEndpoint <string> > httpRequestProcessor,
     IGetHttpMethod getHttpMethod)
 {
     HttpRequestDescriptor = new GenericRequestDescriptor
     {
         HttpMethod       = getHttpMethod,
         RouteDescription = "assets/javascript/service-validation.js"
     };
     HttpRequestProcessor = httpRequestProcessor;
     Performer            = javascriptSourcePerformer;
     ResponseWritter      = stringResponseWritter;
 }
Beispiel #21
0
 public InstaWebProcessor(
     AndroidDevice deviceInfo,
     UserSessionData user,
     IHttpRequestProcessor httpRequestProcessor,
     ILogger logger,
     UserAuthValidate userAuthValidate,
     InstaApi instaApi,
     InstaHttpHelper httpHelper)
 {
     this.deviceInfo           = deviceInfo;
     this.user                 = user;
     this.httpRequestProcessor = httpRequestProcessor;
     this.logger               = logger;
     this.userAuthValidate     = userAuthValidate;
     this.instaApi             = instaApi;
     this.httpHelper           = httpHelper;
 }
Beispiel #22
0
        public bool Start(IEnumerable<Bind> binds, IHttpRequestProcessor requestProcessor)
        {
            foreach (var bind in binds)
            {
                try
                {
                    _binders.Add(_binderFactory.GetBinder(bind, requestProcessor));
                }
                catch (Exception exception)
                {
                    _logger.Fatal(exception, "Unable to bind to {0}:{1}", bind.IpAddress, bind.Port);
                    _binders.ForEach(x => x.Unbind());

                    return false;
                }
            }

            return true;
        }
Beispiel #23
0
        public bool Start(IEnumerable <Bind> binds, IHttpRequestProcessor requestProcessor)
        {
            foreach (var bind in binds)
            {
                try
                {
                    _binders.Add(_binderFactory.GetBinder(bind, requestProcessor));
                }
                catch (Exception exception)
                {
                    _logger.Fatal(exception, "Unable to bind to {0}:{1}", bind.IpAddress, bind.Port);
                    _binders.ForEach(x => x.Unbind());

                    return(false);
                }
            }

            return(true);
        }
Beispiel #24
0
        public static void SetCsrfTokenIfAvailable(this UserSessionData data, HttpResponseMessage response,
                                                   IHttpRequestProcessor _httpRequestProcessor, bool dontCheck = false)
        {
            if (response.IsSuccessStatusCode)
            {
                var cookies =
                    _httpRequestProcessor.HttpHandler.CookieContainer.GetCookies(_httpRequestProcessor.Client
                                                                                 .BaseAddress);

                var csrfToken = cookies[InstaApiConstants.CSRFTOKEN]?.Value ?? string.Empty;
                if (dontCheck && !string.IsNullOrEmpty(csrfToken))
                {
                    data.CsrfToken = csrfToken;
                }
                else if (!string.IsNullOrEmpty(csrfToken) && string.IsNullOrEmpty(data.CsrfToken))
                {
                    data.CsrfToken = csrfToken;
                }
            }
        }
        public IVagalumeApi Build()
        {
            if (_httpClient == null)
            {
                _httpClient = new HttpClient(_httpHandler)
                {
                    BaseAddress = new Uri(VagalumeApiConstants.VAGALUME_URL)
                }
            }
            ;

            if (_httpRequestProcessor == null)
            {
                _httpRequestProcessor = new HttpRequestProcessor(_httpClient, _httpHandler);
            }

            var vagalumeApi = new VagalumeApi(_httpRequestProcessor);

            return(vagalumeApi);
        }
Beispiel #26
0
        public IPinApi Build()
        {
            _requestMessage = new ApiRequestMessage
            {
                password          = _user?.Password,
                username_or_email = _user?.UserName,
            };


            if (_user == null)
            {
                _user = UserSessionData.Empty;
            }

            if (_httpHandler == null)
            {
                _httpHandler = new HttpClientHandler();
            }

            if (_httpClient == null)
            {
                _httpClient = new HttpClient(_httpHandler)
                {
                    BaseAddress = new Uri(PinApiConstants.URL_BASE)
                }
            }
            ;


            if (_httpRequestProcessor == null)
            {
                _httpRequestProcessor =
                    new HttpRequestProcessor(_delay, _httpClient, _httpHandler, _requestMessage, _logger);
            }



            var instaApi = new PinApi(_user, _logger, _httpRequestProcessor);

            return(instaApi);
        }
Beispiel #27
0
        /// <summary>
        ///     Create new Scraper instance
        /// </summary>
        /// <returns>
        ///     Scraper instance
        /// </returns>
        public IInstaScraper Build()
        {
            if (_httpClient == null)
            {
                _httpClient = new HttpClient(_httpHandler)
                {
                    BaseAddress = new Uri(Constants.WEB_URL)
                }
            }
            ;

            if (_httpRequestProcessor == null)
            {
                _httpRequestProcessor =
                    new HttpRequestProcessor(_delay, _httpClient, _httpHandler, _logger);
            }

            var instaApi = new InstaScraper(_user, _logger, _httpRequestProcessor);

            return(instaApi);
        }
        /// <summary>
        /// Create a new request processor
        /// </summary>
        /// <param name="requestHeader"></param>
        /// <returns></returns>
        public IHttpRequestProcessor CreateProcessor(HandlerContext context)
        {
            IHttpRequestProcessor processor = null;

            for (int idx = 0; idx < _handlers.Count; idx++)
            {
                processor = _handlers[idx].CreatProcessor(context);
                if (processor != null)
                {
                    break;
                }
            }

            if (processor == null)
            {
                //return default processor if no handler can create processor
                return(_defaultProcessor);
            }
            else
            {
                return(processor);
            }
        }
Beispiel #29
0
 public VagalumeApi(IHttpRequestProcessor httpRequestProcessor)
 {
     _httpRequestProcessor = httpRequestProcessor;
     InitializeProviders();
 }
 public WeatherForecastsFunctions(IHttpRequestProcessor mediator)
 {
     this.mediator = mediator;
 }
Beispiel #31
0
 public async Task InvokeAsync(HttpContext context, IHttpRequestProcessor httpRequestProcessor)
 {
     await httpRequestProcessor.ProcessContextAsync(context);
 }
        /// <summary>
        ///     Create new API instance
        /// </summary>
        /// <returns>
        ///     API instance
        /// </returns>
        /// <exception cref="ArgumentNullException">User auth data must be specified</exception>
        public IInstaApi Build()
        {
            if (_user == null)
            {
                _user = UserSessionData.Empty;
            }

            if (_httpHandler == null)
            {
                _httpHandler = new HttpClientHandler();
            }

            if (_httpClient == null)
            {
                _httpClient = new HttpClient(_httpHandler)
                {
                    BaseAddress = new Uri(InstaApiConstants.INSTAGRAM_URL)
                }
            }
            ;

            if (_requestMessage == null)
            {
                if (_device == null)
                {
                    _device = AndroidDeviceGenerator.GetRandomAndroidDevice();
                }
                _requestMessage = new ApiRequestMessage
                {
                    PhoneId  = _device.PhoneGuid.ToString(),
                    Guid     = _device.DeviceGuid,
                    Password = _user?.Password,
                    Username = _user?.UserName,
                    DeviceId = ApiRequestMessage.GenerateDeviceId(),
                    AdId     = _device.AdId.ToString()
                };
            }

            if (string.IsNullOrEmpty(_requestMessage.Password))
            {
                _requestMessage.Password = _user?.Password;
            }
            if (string.IsNullOrEmpty(_requestMessage.Username))
            {
                _requestMessage.Username = _user?.UserName;
            }

            try
            {
                InstaApiConstants.TIMEZONE_OFFSET = int.Parse(DateTimeOffset.Now.Offset.TotalSeconds.ToString());
            }
            catch { }

            if (_httpRequestProcessor == null)
            {
                _httpRequestProcessor =
                    new HttpRequestProcessor(_delay, _httpClient, _httpHandler, _requestMessage, _logger);
            }

            if (_apiVersionType == null)
            {
                _apiVersionType = InstaApiVersionType.Version76;
            }

            var instaApi = new InstaApi(_user, _logger, _device, _httpRequestProcessor, _apiVersionType.Value);

            if (_sessionHandler != null)
            {
                _sessionHandler.InstaApi = instaApi;
                instaApi.SessionHandler  = _sessionHandler;
            }
            return(instaApi);
        }