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); } }
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); }
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); } }
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); } } }