public static AsyncSemaphore GetSemaphoreForProxy(FUTProxy proxy) { AsyncSemaphore returnType = null; lock (_lock) { if (_loginSemaphores == null) { _loginSemaphores = new Dictionary <string, AsyncSemaphore>(); } if (proxy == null) { returnType = GetSemaphoreForExe(); } else { if (!_loginSemaphores.ContainsKey(proxy.ToString())) { _loginSemaphores.Add(proxy.ToString(), new AsyncSemaphore(1)); } returnType = _loginSemaphores[proxy.ToString()]; } } return(returnType); }
public static void RemoveFUTProxy(FUTProxy proxy) { lock (_locker) { _futProxies.RemoveAll(x => x.First.ToString() == proxy.ToString()); } }
public static void AddFUTProxy(FUTProxy proxy) { lock (_locker) { _futProxies.Add(new Pair <FUTProxy, int>(proxy, 0)); } }
public static FUTProxy GetFUTProxy(FUTProxy pre) { lock (_locker) { if (pre != null) { var preFound = _futProxies.FirstOrDefault(x => x.First.ToString() == pre.ToString()); if (preFound != null) { preFound.Second++; return(preFound.First); } } foreach (var futProxy in _futProxies) { if (futProxy.Second < _maxCounter) { futProxy.Second++; return(futProxy.First); } } return(null); } }
public static void RemoveProxyCounter(FUTProxy proxy) { lock (_locker) { if (proxy == null) { return; } var p = _futProxies.FirstOrDefault(x => x.First == proxy); if (p != null) { p.Second--; } } }
public CaptchaSolver(FUTProxy proxy) { httpClient = new HttpClient(new HttpClientHandler()); _preProxy = proxy; }
public ProxyManager() { this.RequiresAuthentication(); Get("/proxymanager", args => { var mod = new ProxyManagerModel(); var proxies = new List <FUTProxy>(); using (var ctx = new FUTSettingsDatabase()) { proxies = ctx.FUTProxys.ToList(); } mod.Proxies = proxies; return(View["ProxyManager", mod]); }); Post("/proxymanager", args => { var body = new StreamReader(Request.Body).ReadToEnd(); body = HttpUtility.UrlDecode(body); var parameters = HttpUtility.ParseQueryString(body); var proxies = parameters["proxies"].Split(new[] { "\r\n", "\r", "\n" }, StringSplitOptions.None); foreach (var proxyString in proxies) { if (proxyString.Split(':').Count() < 4) { continue; } var host = proxyString.Split(':')[0]; var port = int.Parse(proxyString.Split(':')[1]); var username = proxyString.Split(':')[2]; var password = proxyString.Split(':')[3]; var futProxy = new FUTProxy(); futProxy.Host = host; futProxy.Port = port; futProxy.Username = username; futProxy.Password = password; using (var ctx = new FUTSettingsDatabase()) { ctx.FUTProxys.Add(futProxy); ctx.SaveChanges(); } Fifa.Managers.ProxyManager.AddFUTProxy(futProxy); } return(Response.AsRedirect("/proxymanager")); }); Post("/deleteproxyarray", args => { var body = new StreamReader(Request.Body).ReadToEnd(); body = HttpUtility.UrlDecode(body); var parameters = HttpUtility.ParseQueryString(body); var proxies = parameters["proxy"].Split(','); foreach (var p in proxies) { FUTProxy proxy = null; var id = int.Parse(p); using (var ctx = new FUTSettingsDatabase()) { proxy = ctx.FUTProxys.FirstOrDefault(x => x.ID == id); if (proxy != null) { var accounts = FUTAccountsDatabase.GetFUTAccounts() .Where(x => x.FUTProxyID == proxy.ID).ToList(); foreach (var futAccount in accounts) { futAccount.FUTProxyID = -1; futAccount.SaveChanges(); } ctx.FUTProxys.Remove(proxy); ctx.SaveChanges(); } } Fifa.Managers.ProxyManager.RemoveFUTProxy(proxy); } return("true"); }); Post("/deleteproxy", args => { var body = new StreamReader(Request.Body).ReadToEnd(); body = HttpUtility.UrlDecode(body); var parameters = HttpUtility.ParseQueryString(body); var id = int.Parse(parameters["proxy"]); FUTProxy proxy = null; using (var ctx = new FUTSettingsDatabase()) { proxy = ctx.FUTProxys.FirstOrDefault(x => x.ID == id); if (proxy != null) { var accounts = FUTAccountsDatabase.GetFUTAccounts() .Where(x => x.FUTProxyID == proxy.ID).ToList(); foreach (var futAccount in accounts) { futAccount.FUTProxyID = -1; futAccount.SaveChanges(); } ctx.FUTProxys.Remove(proxy); ctx.SaveChanges(); } } Fifa.Managers.ProxyManager.RemoveFUTProxy(proxy); return("true"); }); Post("/allocateproxies", args => { var body = new StreamReader(Request.Body).ReadToEnd(); body = HttpUtility.UrlDecode(body); var parameters = HttpUtility.ParseQueryString(body); var action = parameters["action"]; if (action == "allocate") { Fifa.Managers.BotManager.AllocateProxies(); } else { Fifa.Managers.BotManager.DeallocateProxies(); Fifa.Managers.ProxyManager.ResetProxyCounter(); } return("true"); }); }