示例#1
0
 public HttpRequestProcessor(IRequestDelay delay, HttpClient httpClient, HttpClientHandler httpHandler,
                             IInstaLogger logger)
 {
     _delay      = delay;
     Client      = httpClient;
     HttpHandler = httpHandler;
     _logger     = logger;
 }
 /// <summary>
 ///     Set delay between requests. Useful when API supposed to be used for mass-bombing.
 /// </summary>
 /// <param name="delay">Timespan delay</param>
 /// <returns>
 ///     API Builder
 /// </returns>
 public IInstaApiBuilder SetRequestDelay(IRequestDelay delay)
 {
     if (delay == null)
     {
         delay = RequestDelay.Empty();
     }
     _delay = delay;
     return(this);
 }
 public HttpRequestProcessor(IRequestDelay delay, HttpClient httpClient, HttpClientHandler httpHandler,
                             ApiRequestMessage requestMessage, IPinLogger logger)
 {
     _delay         = delay;
     Client         = httpClient;
     HttpHandler    = httpHandler;
     RequestMessage = requestMessage;
     _logger        = logger;
 }
示例#4
0
        private static IInstaApi CreateInstaApi(byte[] cookies, int requestDelayMin, int requestDelayMax)
        {
            IRequestDelay delay = RequestDelay.FromSeconds(requestDelayMin, requestDelayMax);

            var instaAPI = InstaApiBuilder.CreateBuilder()
                           .SetRequestDelay(delay)
                           .Build();

            instaAPI.LoadStateDataFromStream(new MemoryStream(cookies));

            return(instaAPI);
        }
示例#5
0
        private static IInstaApi CreateInstaApi(string username, string password, int requestDelayMin, int requestDelayMax)
        {
            UserSessionData userSession = new UserSessionData
            {
                UserName = username,
                Password = password
            };

            // if you want to set custom device (user-agent) please check this:
            // https://github.com/ramtinak/InstagramApiSharp/wiki/Set-custom-device(user-agent)

            IRequestDelay delay = RequestDelay.FromSeconds(requestDelayMin, requestDelayMax);

            return(InstaApiBuilder.CreateBuilder()
                   .SetUser(userSession)
                   .SetRequestDelay(delay)
                   .Build());
        }
示例#6
0
        private async Task <bool> Login(string name, string password)
        {
            _userSession = new UserSessionData
            {
                UserName = name,
                Password = password
            };

            IRequestDelay delay = RequestDelay.FromSeconds(2, 2);

            _instaApi = InstaApiBuilder.CreateBuilder()
                        .SetUser(_userSession)
                        .UseLogger(new DebugLogger(LogLevel.Exceptions))
                        .SetRequestDelay(delay)
                        .Build();
            IResult <InstaLoginResult> loggedIn = await _instaApi.LoginAsync();

            return(loggedIn.Succeeded);
        }
示例#7
0
 /// <summary>
 ///     Set delay between requests. Useful when API supposed to be used for mass-bombing.
 /// </summary>
 /// <param name="delay">Timespan delay</param>
 /// <returns>
 ///     API Builder
 /// </returns>
 public IInstaApiBuilder SetRequestDelay(IRequestDelay delay)
 {
     _delay = delay;
     return(this);
 }
        private static async Task <(bool, string)> LoginIfUnauthorised(IInstaApi api, IRequestDelay delay)
        {
            delay.Disable();
            var logInResult = await api.LoginAsync();

            delay.Enable();
            return(!logInResult.Succeeded
                ? (false, $"unable to login {logInResult.Info.Message}")
                : (true, String.Empty));
        }
 private static IInstaApi GetApi(IRequestDelay delay, UserSessionData userSessionData) =>
 InstaApiBuilder.CreateBuilder()
 .SetUser(userSessionData)
 .UseLogger(new DebugLogger(LogLevel.Exceptions))         // use logger for requests and debug messages
 .SetRequestDelay(delay)
 .Build();