/// <summary>Gets a <see cref="CaptchaService"/> to be used for solving captcha challenges.</summary> public static CaptchaService GetService(SettingsCaptchas settings) { CaptchaService service; switch (settings.CurrentService) { case CaptchaServiceType.AntiCaptcha: service = new AntiCaptchaService(settings.AntiCapToken); break; case CaptchaServiceType.AzCaptcha: service = new AzCaptchaService(settings.AZCapToken); break; case CaptchaServiceType.CaptchasIO: service = new CaptchasIOService(settings.CIOToken); break; case CaptchaServiceType.CustomTwoCaptcha: service = new CustomTwoCaptchaService(settings.CustomTwoCapToken, new Uri($"http://{settings.CustomTwoCapDomain}:{settings.CustomTwoCapPort}")); break; case CaptchaServiceType.DeathByCaptcha: service = new DeathByCaptchaService(settings.DBCUser, settings.DBCPass); break; case CaptchaServiceType.DeCaptcher: service = new DeCaptcherService(settings.DCUser, settings.DCPass); break; case CaptchaServiceType.ImageTyperz: service = new ImageTyperzService(settings.ImageTypToken); break; case CaptchaServiceType.CapMonster: service = new CapMonsterService(settings.CustomTwoCapToken, new Uri($"http://{settings.CustomTwoCapDomain}:{settings.CustomTwoCapPort}")); break; case CaptchaServiceType.RuCaptcha: service = new RuCaptchaService(settings.RuCapToken); break; case CaptchaServiceType.SolveCaptcha: service = new SolveCaptchaService(settings.SCToken); break; case CaptchaServiceType.SolveRecaptcha: service = new SolveRecaptchaService(settings.SRToken); break; case CaptchaServiceType.TrueCaptcha: service = new TrueCaptchaService(settings.TrueCapUser, settings.TrueCapToken); break; case CaptchaServiceType.TwoCaptcha: service = new TwoCaptchaService(settings.TwoCapToken); break; default: throw new NotSupportedException(); } service.Timeout = TimeSpan.FromSeconds(settings.Timeout); return(service); }
public TwoCaptchaFixture() { Service = new TwoCaptchaService(Config.Credentials.TwoCaptchaApiKey); }
public static async void Run(string[] args) { var random = new TRandom(); Configuration config; try { config = JsonConvert.DeserializeObject <Configuration>(File.ReadAllText( Directory.GetCurrentDirectory() + "/" + "config.json")); } catch (FileNotFoundException e) { Console.WriteLine("Please create a config.json file to continue."); throw; } Console.Write("Hello and welcome to "); Console.ForegroundColor = ConsoleColor.Magenta; Console.Write("Entropy!\n"); Console.ForegroundColor = ConsoleColor.Gray; Console.WriteLine("How many accounts would you like to create today?"); var acts = int.Parse(Console.ReadLine()); Console.WriteLine($"This generation session will cost you about ${Math.Round(acts * 0.003, 2)} USD " + $"(for {acts} accounts)"); IProxyPool proxyPool; if (File.Exists($"{Directory.GetCurrentDirectory()}/{config.ProxyFile}")) { proxyPool = new StandardProxyPool(ProxyReader.ReadProxies(config.ProxyFile)); } else { proxyPool = new GimmeProxyPool(); } var captcha = new TwoCaptchaService(config.CaptchaKey); Console.WriteLine("OK! Let's go!"); var tasks = new List <Task>(); Status = "OK"; UpdateStats(); for (var i = acts - 1; i >= 0; i--) { tasks.Add(new Task(async() => { var proxy = proxyPool.NextProxy(); ActiveProxies++; for (var x = 0; x < 5; x++) { var username = random.Choice(config.Usernames.Prefix) + random.Choice(config.Usernames.Root) + random.Choice(config.Usernames.Suffix); var password = config.Password.UseStaticPassword ? config.Password.StaticPassword : String.Empty; var ui = new AccountCreationOptions { CaptchaService = captcha, Dob = $"{random.Next(1970, 2000)}-{FormatPTCNumber(random.Next(1, 12))}-{FormatPTCNumber(random.Next(1, 27))}", Proxy = proxy.ToWebProxy(), Username = username, Password = password }; var res = await Creator.Create(ui); if (res.Successful) { Created++; UpdateStats(); await Creator.HandleAccountAfterCreation(config, res); } else { Failed++; UpdateStats(); } } BenchedProxies++; })); } // Go. await Task.WhenAll(tasks); }