public bool DataValidation()
        {
            try
            {
                if (!Directory.Exists("out"))
                {
                    Directory.CreateDirectory("out");
                }
                if (!Directory.Exists("in"))
                {
                    Directory.CreateDirectory("in");
                }
                if (!Directory.Exists("out/regger"))
                {
                    Directory.CreateDirectory("out/regger");
                }
                if (!Directory.Exists("out/accounts"))
                {
                    Directory.CreateDirectory("out/accounts");
                }
                if (!Directory.Exists("out/spamer"))
                {
                    Directory.CreateDirectory("out/spamer");
                }
                if (!Directory.Exists("out/cookies"))
                {
                    Directory.CreateDirectory("out/cookies");
                }

                if (MinPauseNumeric.Value >= MaxPauseNumeric.Value)
                {
                    MessageBox.Show("Максимальная пауза между запросами не может быть больше либо равняться Минимальной!");
                    return(false);
                }
                if (MinPauseRegistrationNumeric.Value >= MaxPauseRegistrationNumeric.Value)
                {
                    MessageBox.Show("Максимальная пауза между регистрациями не может быть больше либо равняться Минимальной!");
                    return(false);
                }
                if (CountThreadNumeric.Value <= 0)
                {
                    MessageBox.Show("Количество потоков не может быть меньше либо равнятся нулю!");
                    return(false);
                }
                if (OperatingModeBox.Text == "Регистратор")
                {
                    if (CountThreadNumeric.Value > CountAccountNumeric.Value)
                    {
                        MessageBox.Show("Количество потоков не может быть больше количества регистрируемых аккаунтов!");
                        return(false);
                    }
                }
                else
                {
                    if (CountThreadNumeric.Value > Account.Count)
                    {
                        MessageBox.Show("Количество потоков не может быть больше количества аккаунтов!");
                        return(false);
                    }
                }
                if (!GetUserAgent.FillInUserAgents(UserAgentFileBox.Text, BuiltInUserAgents.Checked))
                {
                    return(false);
                }
                if (!GetProxy.FillInProxy(ProxyFilePathBox.Text, ProxySourceBox.Text, ProxyModeBox.Text, TypeOfProxyBox.Text, ProxyCheckLinkBox.Text))
                {
                    return(false);
                }
                if (!CheckBalanceCaptcha())
                {
                    return(false);
                }
                if (!GetNameSurnamePassword.FillInData(NameSurnameBox.Text, PasswordGenerateCheckBox.Checked, PasswordFileBox.Text))
                {
                    return(false);
                }
                if (!GetSmsReg.FillInSettings(CountrySmsRegBox.Text, ServiceSmsRegBox.Text, APIKeySmsRegBox.Text))
                {
                    return(false);
                }

                // Очистки лога, и запуск таймера.
                LogBox.Text             = "";
                Controller.isAliveTimer = true;
                stopwatch.Restart();
                timer1.Enabled = true;

                // Обнуление статистики регистрации
                SaveData.UsedRegistration    = 0;
                SaveData.GoodRegistration    = 0;
                SaveData.InvalidRegistration = 0;

                WorkWithAccount.minPause             = (int)MinPauseNumeric.Value;
                WorkWithAccount.maxPause             = (int)MaxPauseNumeric.Value;
                WorkWithAccount.minPauseRegistration = (int)MinPauseRegistrationNumeric.Value * 60000;
                WorkWithAccount.maxPauseRegistration = (int)MaxPauseRegistrationNumeric.Value * 60000;
                WorkWithAccount.countRequest         = (int)CountRequestNumeric.Value;
                WorkWithAccount.OperatingMode        = OperatingModeBox.Text;
                Controller.countThread = (int)CountThreadNumeric.Value;
                WorkWithAccount.CountAccountForRegistration = (int)CountAccountNumeric.Value;
            }
            catch (Exception exception) { MessageBox.Show(exception.Message); }
            return(true);
        }
Esempio n. 2
0
        public static void RegistrationAccount()
        {
            try
            {
                string      Password, UserAgent, NameSurname;
                string      proxyLog = "";
                ProxyClient proxyClient;
                while (true)
                {
                    SaveData.WriteToLog($"System", "Попытка получить номер");
                    (string tzid, string number)number = GetSmsReg.GetNumber();
                    #region Выдача аккаунтов
                    lock (locker)
                    {
                        if (SaveData.UsedRegistration < CountAccountForRegistration)
                        {
                            (string NameSurname, string Password)DataForRegistration = GetNameSurnamePassword.Get();

                            if (String.IsNullOrEmpty(DataForRegistration.NameSurname) || String.IsNullOrEmpty(DataForRegistration.Password) || string.IsNullOrEmpty(number.number))
                            {
                                continue;
                            }

                            NameSurname = DataForRegistration.NameSurname;
                            Password    = DataForRegistration.Password;
                            SaveData.UsedRegistration++;
                            SaveData.SaveAccount($"{number.number}:{Password}", SaveData.ProcessedRegistrationList);
                        }
                        else
                        {
                            break;
                        }
                        UserAgent   = GetUserAgent.get();
                        proxyClient = GetProxy.get();
                        proxyLog    = proxyClient == null ? "" : $";{proxyClient.ToString()}";
                    }
                    #endregion

                    #region Вызов метода регистрации, и проверка результата
                    SaveData.WriteToLog($"{number.number}:{Password}", "Попытка зарегестрировать аккаунт");

                    (Status status, CookieStorage cookie)Data;
                    for (int i = 0; i < countRequest; i++)
                    {
                        Data = GoRegistrationAccount(NameSurname, number, Password, UserAgent, proxyClient);
                        switch (Data.status)
                        {
                        case Status.True:
                            SaveData.GoodRegistration++;
                            SaveData.WriteToLog($"{number.number}:{Password}", "Аккаунт успешно зарегестрирован");
                            SaveData.SaveAccount($"{number.number}:{Password}{proxyLog}|{UserAgent}", SaveData.GoodRegistrationList);
                            Data.cookie.SaveToFile($"out/cookies/{number.number}.jar", true);
                            break;

                        case Status.False:
                            SaveData.InvalidRegistration++;
                            SaveData.WriteToLog($"{number.number}:{Password}", "Аккаунт не зарегестрирован");
                            SaveData.SaveAccount($"{number.number}:{Password}{proxyLog}|{UserAgent}", SaveData.InvalidRegistrationList);
                            break;

                        default:
                            SaveData.WriteToLog($"{number.number}:{Password}", "Неизвестная ошибка, повторяем.");
                            UserAgent   = GetUserAgent.get();
                            proxyClient = GetProxy.get();
                            continue;
                        }
                        break;
                    }
                    int sleep = rand.Next(minPauseRegistration, maxPauseRegistration);
                    SaveData.WriteToLog($"System", $"Засыпаем на {sleep/60000} минут");
                    Thread.Sleep(sleep);
                    #endregion
                }
            }
            catch (Exception exception) { MessageBox.Show(exception.Message); }
        }