Ejemplo n.º 1
0
        private void GenerateAndQueueAccounts()
        {
            var random = new Random();

            int getRandom(int min, int max) => random.Next(min, max);

            var amount = MainWindow.Settings.AccountServiceLimit != 0 ? MainWindow.Settings.AccountServiceLimit : 100;
            var names  = Properties.Resources.names.Split
                             (new string[] { "\n" }, StringSplitOptions.None).Select(x => x.Replace("\r", "")).ToArray();
            var emails = Properties.Resources.emails.Split
                             (new string[] { "\n" }, StringSplitOptions.None).Select(x => x.Replace("\r", "")).ToArray();

            for (int i = 0; i < amount; i++)
            {
                var name  = names[getRandom(0, names.Length)];
                var email = emails[getRandom(0, emails.Length)];

                var salt     = Util.RandomString(getRandom(2, 4));
                var password = Util.RandomString(getRandom(7, 14)).ToLower();

                var username = ((name + salt).Shuffle() + "@" + email).ToLower();
                var account  = new RSAccountForm()
                {
                    Email    = username,
                    Password = password
                };

                // Queue account for creation
                (Service as AccountService).QueueReqForm(account);
            }
        }
Ejemplo n.º 2
0
        private async Task <bool> CreateAccount(RSAccountForm account, RsWebHelper rsHelper)
        {
            if (account != null)
            {
                var captchaRes = await GetCaptchaSolveKey(account, rsHelper);

                if (captchaRes != string.Empty)
                {
                    account.CaptchaSolve = captchaRes;

                    StatusUpdate
                        (ServiceStatusCode.Updated, account, "Creating account...");

                    var response = await
                                   rsHelper.PostRequest(account);

                    var errorMessage = GetErrorMessage(response);
                    if (errorMessage != string.Empty)
                    {
                        StatusUpdate(ServiceStatusCode.Updated, account, errorMessage);
                    }

                    var success = IsCreateSuccess(response);
                    if (!success && errorMessage == string.Empty)
                    {
                        StatusUpdate(ServiceStatusCode.Updated, account, "An unknown error occured");
                        Util.Log(response);
                    }

                    return(success);
                }
            }

            return(false);
        }
Ejemplo n.º 3
0
        private void GenerateQueuePrefixEmails()
        {
            var(provider, prefix, min, max) = GetPrefixDetails();
            var random = new Random();

            for (int i = min; i <= max; i++)
            {
                var account = new RSAccountForm()
                {
                    Email    = prefix + i + provider,
                    Password = Util.RandomString(random.Next(7, 14), random).ToLower()
                };

                (Service as AccountService).QueueReqForm(account);
            }
        }
Ejemplo n.º 4
0
        private void HandleCreate(RSAccountForm account)
        {
            var settings = MainWindow.Settings;

            var accountModel = DataProvider.GetAccounts().FirstOrDefault(x => x.Username == account.Email);

            if (accountModel is null)
            {
                accountModel = new AccountModel("New Account")
                {
                    Username = account.Email,
                    Password = account.Password
                };
            }

            if (accountModel.World is null || accountModel.World == 0)
            {
                if (settings.AccountDefaultUseRandomWorld)
                {
                    accountModel.World = Worlds.GetRandom();
                }
                else if (settings.AccountDefaultWorld > 0)
                {
                    int world = settings.AccountDefaultWorld;
                    if (world > 0 && (world >= 301 && world <= 525))
                    {
                        accountModel.World = world;
                    }
                }
            }

            if (string.IsNullOrEmpty(accountModel.ProxyName) &&
                settings.CreateAccountUseProxy &&
                !string.IsNullOrEmpty(settings.CreateAccountProxyName))
            {
                accountModel.ProxyEnabled = 1;
                accountModel.ProxyName    = settings.CreateAccountProxyName;
            }

            if (string.IsNullOrEmpty(accountModel.Script) &&
                !string.IsNullOrEmpty(settings.AccountDefaultScript))
            {
                accountModel.Script = settings.AccountDefaultScript;
            }

            if (!accountModel.GroupId.HasValue &&
                settings.AccountDefaultGroupId > 0)
            {
                accountModel.GroupId = settings.AccountDefaultGroupId;
            }

            if (accountModel.Id == 0)
            {
                if (DataProvider.SaveAccount(accountModel))
                {
                    accountModel = DataProvider.GetAccounts().FirstOrDefault(x => x.Username == accountModel.Username);
                    if (accountModel != null)
                    {
                        Host.AddAccountToList(accountModel);
                        MainWindow.AccountCreatedCallback?.Invoke(accountModel);
                    }
                }
            }
            else
            {
                accountModel.Temporary = 0;
                if (DataProvider.UpdateAccount(accountModel))
                {
                    Invoke(() =>
                    {
                        var item = Host.accountsListItems.FirstOrDefault(x => x.Username == accountModel.Username);
                        if (item != null)
                        {
                            Util.UpdateObjByProps(accountModel, item, false);

                            AccountsImportList.Refresh();
                            Host.AccountsListItems.Refresh();
                        }
                    });
                }
            }

            if (settings.LaunchAccountOnCreate)
            {
                var item = MainWindow.GetAccountsHandler().FirstOrDefault
                               (x => x.Id == accountModel.Id);
                if (item != null)
                {
                    item.AutoLaunched = true;
                    MainWindow.AccountManager.QueueAccount(item);
                }
            }
        }