Пример #1
0
 public FUTRequestBase(FUTAccount account, RequestPerMinuteManager rpmManager, RequestPerMinuteManager rpmManagerSearch, LoginMethod loginMethod)
 {
     FUTAccount = account;
     RequestPerMinuteManager       = rpmManager;
     RequestPerMinuteManagerSearch = rpmManagerSearch;
     CurrentLoginMethod            = loginMethod;
 }
Пример #2
0
        public LoginWebRequest(FUTAccount account, RequestPerMinuteManager rpmManager, RequestPerMinuteManager rpmManagerSearch, LoginMethod login) : base(account, rpmManager, rpmManagerSearch, login)
        {
            _mailClient = MailClientFactory.Create(account.EMail, account.EMailPassword);

            FUTAccount.FUTPlatform     = new FUTPlatform();
            FUTAccount.FUTPlatform.SKU = Constants.SKUWeb;
        }
Пример #3
0
 public static CookieContainer GetCookieContainer(FUTAccount account, bool web = true)
 {
     lock (_lockObject)
     {
         var cString  = web ? "web" : "mobile";
         var filename = Path.GetFullPath(_path + $"\\cookies\\{account.EMail.ToLower().Replace(".", "")}_{cString}.dat");
         if (!File.Exists(filename))
         {
             return(new CookieContainer());
         }
         Directory.CreateDirectory(Path.GetFullPath(_path + "\\cookies\\"));
         try
         {
             using (Stream stream = File.Open(filename, FileMode.Open))
             {
                 BinaryFormatter formatter = new BinaryFormatter();
                 return((CookieContainer)formatter.Deserialize(stream));
             }
         }
         catch (Exception e)
         {
             return(new CookieContainer());
         }
     }
 }
Пример #4
0
 public static void AddFUTAccount(FUTAccount account)
 {
     lock (_accountsLock)
     {
         using (var context = new FUTAccountsDatabase())
         {
             context.FUTAccounts.Add(account);
             context.SaveChanges();
         }
     }
 }
Пример #5
0
 public static void DeleteCookieContainer(FUTAccount account, bool web = true)
 {
     lock (_lockObject)
     {
         var cString  = web ? "web" : "mobile";
         var filename = Path.GetFullPath(_path + $"\\cookies\\{account.EMail.ToLower().Replace(".", "")}_{cString}.dat");
         Directory.CreateDirectory(Path.GetFullPath(_path + "\\cookies\\"));
         if (File.Exists(filename))
         {
             try
             {
                 File.Delete(filename);
             }
             catch (Exception e)
             {
             }
         }
     }
 }
Пример #6
0
        public FUTRequestFactory(FUTAccount account)
        {
            FUTAccount  = account;
            _httpClient = new HttpClientEx();
            _httpClient.AddCommonHeaders();
            _cookies = new CookieContainer();
            //load cookies from db
            //var futCookies = FUTAccountsDatabase.GetFUTCookiesByFUTAccount(FUTAccount);
            //if (futCookies != null)
            //{
            //    if(!string.IsNullOrEmpty(futCookies.FutWeb))
            //    {
            //        _cookies = futCookies.FutWeb.DeserializeCookieContainer();
            //    }
            //}
            _httpClient.ClientHandler.CookieContainer = _cookies;

            RequestPerMinuteManager       = new RequestPerMinuteManager();
            RequestPerMinuteManagerSearch = new RequestPerMinuteManager(true);
            RequestCounter = 0;
        }
Пример #7
0
 public static void UpdateCoinsByFUTAccount(FUTAccount account, int coins)
 {
     using (var context = new FUTLogsDatabase())
     {
         var lastSession = context.FUTCoins.FirstOrDefault(x => x.EMail.ToLower() == account.EMail.ToLower());
         if (lastSession != null)
         {
             lastSession.Coins = coins;
         }
         else
         {
             var coinsNew = new FUTCoins
             {
                 EMail = account.EMail,
                 Coins = coins
             };
             context.FUTCoins.Add(coinsNew);
         }
         context.SaveChanges();
     }
 }
Пример #8
0
 public static void SaveCookieContainer(FUTAccount account, CookieContainer cookies, bool web = true)
 {
     lock (_lockObject)
     {
         var cString  = web ? "web" : "mobile";
         var filename = Path.GetFullPath(_path + $"\\cookies\\{account.EMail.ToLower().Replace(".", "")}_{cString}.dat");
         Directory.CreateDirectory(Path.GetFullPath(_path + "\\cookies\\"));
         DeleteCookieContainer(account, web);
         using (Stream stream = File.Create(filename))
         {
             try
             {
                 BinaryFormatter formatter = new BinaryFormatter();
                 formatter.Serialize(stream, cookies);
             }
             catch (Exception e)
             {
             }
         }
     }
 }
 public RemoveItemsFromWatchlistRequest(FUTAccount account, List <string> tradeIDs, RequestPerMinuteManager rpmManager, RequestPerMinuteManager rpmManagerSearch, LoginMethod login) : base(account, rpmManager, rpmManagerSearch, login)
 {
     _tradeIDs = tradeIDs;
 }
Пример #10
0
 public IOSLoginRequest(FUTAccount account, FUTSession session, RequestPerMinuteManager rpmManager, RequestPerMinuteManager rpmManagerSearch, LoginMethod login) : base(account, session, rpmManager, rpmManagerSearch, login)
 {
     _mailClient = MailClientFactory.Create(account.EMail, account.EMailPassword);
 }
Пример #11
0
 public SolveCaptchaRequest(FUTAccount account, RequestPerMinuteManager rpmManager, RequestPerMinuteManager rpmManagerSearch, LoginMethod login, string captchaResult) : base(account, rpmManager, rpmManagerSearch, login)
 {
     _captchaResult = captchaResult;
 }
Пример #12
0
 public BuyTradeRequest(FUTAccount account, long tradeID, long price, RequestPerMinuteManager rpmManager, RequestPerMinuteManager rpmManagerSearch, LoginMethod login) : base(account, rpmManager, rpmManagerSearch, login)
 {
     _price   = price;
     _tradeID = tradeID;
 }
 public OfferItemOnTransferMarketRequest(FUTAccount account, OfferItemModel item, RequestPerMinuteManager rpmManager, RequestPerMinuteManager rpmManagerSearch, LoginMethod login) : base(account, rpmManager, rpmManagerSearch, login)
 {
     _item = item;
 }
Пример #14
0
 public UserHistoricalRequest(FUTAccount account, RequestPerMinuteManager rpmManager, RequestPerMinuteManager rpmManagerSearch, LoginMethod login) : base(account, rpmManager, rpmManagerSearch, login)
 {
 }
Пример #15
0
        public MuleManager()
        {
            this.RequiresAuthentication();
            this.RequiresClaims(delegate(Claim claim)
            {
                var beingAs = GetRoleFromClaim(claim.Value);

                return(beingAs == WebAccessRole.Administrator || beingAs == WebAccessRole.Owner);
            });
            Get("/mulemanager", args =>
            {
                var model = new MuleManagerModel();


                model.Clients = Fifa.Managers.MuleManager.GetMuleClients();


                return(View["MuleManager", model]);
            });

            Post("/mulemanager", args =>
            {
                var body       = new StreamReader(Request.Body).ReadToEnd();
                var parameters = HttpUtility.ParseQueryString(body);
                if (parameters["importMulingsessions"] != null)
                {
                    try
                    {
                        var data = parameters["importData"];

                        var lines = data.Split("\r\n".ToCharArray());

                        foreach (var line in lines)
                        {
                            if (line.Trim() == "" || !line.Contains(";"))
                            {
                                continue;
                            }
                            var accountData = line.Split(';');
                            if (accountData.Count() != 8)
                            {
                                continue;
                            }
                            var futAccount = new FUTAccount
                            {
                                EMail          = accountData[0],
                                Password       = accountData[1],
                                EMailPassword  = accountData[2],
                                SecurityAnswer = accountData[3],
                                BackupCode1    = accountData[4],
                            };
                            var muleClient = new MuleClient(futAccount)
                            {
                                MuleVolume            = int.Parse(accountData[5]),
                                MinimumCoinsOnAccount = int.Parse(accountData[6])
                            };
                            Fifa.Managers.MuleManager.AddMuleClient(muleClient);
                        }
                        return(Response.AsRedirect("/mulemanager"));
                    }
                    catch (Exception e)
                    {
                        return(Response.AsRedirect("/mulemanager"));
                    }
                }
                if (parameters["addMulingsession"] != null)
                {
                    var futAccount = new FUTAccount
                    {
                        EMail          = parameters["accountEMail"],
                        EMailPassword  = parameters["accountEMailPassword"],
                        Password       = parameters["accountPassword"],
                        BackupCode1    = parameters["accountBackupCode"],
                        SecurityAnswer = parameters["accountSecurityanswer"]
                    };
                    var muleClient = new MuleClient(futAccount)
                    {
                        MuleVolume            = int.Parse(parameters["muleVolume"]),
                        MinimumCoinsOnAccount = int.Parse(parameters["minimumCoinsOnAccount"])
                    };
                    Fifa.Managers.MuleManager.AddMuleClient(muleClient);

                    return(Response.AsRedirect("/mulemanager"));
                }
                return(Response.AsRedirect("/mulemanager"));
            });

            Post("/removemulesession", args =>
            {
                var body       = new StreamReader(Request.Body).ReadToEnd();
                var parameters = HttpUtility.ParseQueryString(body);

                var email = parameters["email"];

                var client = Fifa.Managers.MuleManager.GetMuleClientByEMail(email);
                if (client == null)
                {
                    return(Response.AsRedirect("/mulemanager"));
                }
                if (!client.Muling)
                {
                    Fifa.Managers.MuleManager.RemoveMuleClient(email);
                }
                return(Response.AsRedirect("/mulemanager"));
            });
        }
Пример #16
0
 public NotAssignedRequest(FUTAccount account, RequestPerMinuteManager rpmManager, RequestPerMinuteManager rpmManagerSearch, LoginMethod login) : base(account, rpmManager, rpmManagerSearch, login)
 {
 }
Пример #17
0
 public PriceLimitsRequest(FUTAccount account, long assetID, RequestPerMinuteManager rpmManager, RequestPerMinuteManager rpmManagerSearch, LoginMethod login) : base(account, rpmManager, rpmManagerSearch, login)
 {
     _assetID = assetID;
 }
Пример #18
0
 public SetNewUserRequest(FUTAccount account, RequestPerMinuteManager rpmManager,
                          RequestPerMinuteManager rpmManagerSearch, LoginMethod login, UserHistoricalResponse hist)
     : base(account, rpmManager, rpmManagerSearch, login)
 {
     _hist = hist;
 }
Пример #19
0
 public UserMassInfoRequest(FUTAccount account, RequestPerMinuteManager rpmManager, RequestPerMinuteManager rpmManagerSearch, LoginMethod loginMethod) : base(account, rpmManager, rpmManagerSearch, loginMethod)
 {
 }
Пример #20
0
        public async Task <LoginResponse> PerformRequestAsync()
        {
            try
            {
                var resp = new LoginResponse();
                if (_mailClient == null && String.IsNullOrEmpty(FUTAccount.BackupCode1) && String.IsNullOrEmpty(FUTAccount.BackupCode2) && String.IsNullOrEmpty(FUTAccount.BackupCode3) && String.IsNullOrEmpty(FUTAccount.GoogleAuthCode))
                {
                    resp.Code    = FUTErrorCode.UnknownEMailProvider;
                    resp.Message = "Unknown EMailprovider";
                    return(resp);
                }
                HttpClient.RemoveRequestHeader(NonStandardHttpHeaders.PhishingToken);
                HttpClient.RemoveRequestHeader(NonStandardHttpHeaders.SessionId);
                UpdateStatistic("Loading Cookies and Enviromentvariables...");
                HttpClient.SetCookieContainer(CookieManager.GetCookieContainer(FUTAccount, false));
                UpdateStatistic("Grabbing Loginpage...");
                var loggedIn = await GetLoginPageAsync().ConfigureAwait(false);

                var loggedInString = await loggedIn.Content.ReadAsStringAsync().ConfigureAwait(false);

                if (!loggedIn.RequestMessage.RequestUri.AbsoluteUri.Contains("companion/auth.html"))
                {
                    await Task.Delay(2000).ConfigureAwait(false);

                    UpdateStatistic("Loging in to Origin...");
                    loggedIn = await LoginAsync(loggedIn.RequestMessage.RequestUri.AbsoluteUri).ConfigureAwait(false);

                    loggedInString = await loggedIn.Content.ReadAsStringAsync().ConfigureAwait(false);
                }


                var codeSentTimestamp = DateTime.Now.Subtract(new TimeSpan(0, 2, 0));
                if (loggedInString.Contains("var redirectUri = 'https://signin.ea.com:443/p/web2/login?execution="))
                {
                    var redirect = Regex.Match(loggedInString, "'(.*?)';").Groups[1].Value;
                    var red2     = Regex.Match(loggedInString, "redirectUri \\+ \"(.*?)\";").Groups[1].Value;
                    loggedIn = await HttpClient.GetAsync(redirect + red2).ConfigureAwait(false);

                    loggedInString = await loggedIn.Content.ReadAsStringAsync().ConfigureAwait(false);
                }
                if (loggedInString.Contains("general-error") && !loggedInString.Contains("panel-profile-upgrade"))
                {
                    resp.Code = Models.FUTErrorCode.WrongLoginData;
                    return(resp);
                }

                if (loggedInString.Contains("panel-forewordMessage") && loggedInString.Contains("btn-continue"))
                {
                    UpdateStatistic("Accepting TFACreation...");
                    loggedIn = await AcceptTwoFactorAsync(loggedIn.RequestMessage.RequestUri.AbsoluteUri);

                    loggedInString = await loggedIn.Content.ReadAsStringAsync().ConfigureAwait(false);
                }
                if (loggedInString.Contains("btnTFACreate") && loggedInString.Contains("tfa_type") && loggedInString.Contains("EMAIL"))
                {
                    UpdateStatistic("Create EMail TFA...");
                    loggedIn = await CreateEMailTwoFactorAsync(loggedIn.RequestMessage.RequestUri.AbsoluteUri);

                    loggedInString = await loggedIn.Content.ReadAsStringAsync().ConfigureAwait(false);
                }

                if (loggedInString.Contains("tfa-login-link") && loggedInString.Contains("btnSendCode"))
                {
                    if (!String.IsNullOrEmpty(FUTAccount.GoogleAuthCode))
                    {
                        loggedIn = await SelectGoogleAuthenticatorAsync(loggedIn.RequestMessage.RequestUri.AbsoluteUri).ConfigureAwait(false);

                        loggedInString = await loggedIn.Content.ReadAsStringAsync().ConfigureAwait(false);
                    }
                    else
                    {
                        loggedIn = await SelectEMailTwoFactorAsync(loggedIn.RequestMessage.RequestUri.AbsoluteUri).ConfigureAwait(false);

                        loggedInString = await loggedIn.Content.ReadAsStringAsync().ConfigureAwait(false);
                    }
                }
                var twoFactorCode = "";
                if (loggedInString.Contains("oneTimeCode"))
                {
                    if (!String.IsNullOrEmpty(FUTAccount.BackupCode1))
                    {
                        twoFactorCode          = FUTAccount.BackupCode1;
                        FUTAccount.BackupCode1 = "";
                        FUTAccount.SaveChanges();
                    }
                    else if (!String.IsNullOrEmpty(FUTAccount.BackupCode2))
                    {
                        twoFactorCode          = FUTAccount.BackupCode2;
                        FUTAccount.BackupCode2 = "";
                        FUTAccount.SaveChanges();
                    }
                    else if (!String.IsNullOrEmpty(FUTAccount.BackupCode2))
                    {
                        twoFactorCode          = FUTAccount.BackupCode2;
                        FUTAccount.BackupCode3 = "";
                        FUTAccount.SaveChanges();
                    }
                    else if (!string.IsNullOrEmpty(FUTAccount.GoogleAuthCode))
                    {
                        twoFactorCode = QuickEAAuthenticator.GenerateAuthCode(FUTAccount.GoogleAuthCode);
                    }
                    else
                    {
                        var resendUri  = loggedIn.RequestMessage.RequestUri.AbsoluteUri + "&_eventId=resend";
                        var resendUri2 = "https://signin.ea.com" + loggedInString.GetRegexBetween(" < a id=\"resend_code_link\" href=\"", "\"");
                        UpdateStatistic("Waiting for TwoFactor Code...");
                        twoFactorCode = await WaitForTwoFactorCode(codeSentTimestamp, resendUri).ConfigureAwait(false);
                    }
                    if (twoFactorCode == "WrongUserPassword")
                    {
                        resp.Code = Models.FUTErrorCode.WrongEMailPassword;
                        return(resp);
                    }
                    if (twoFactorCode == "GMXBlocked")
                    {
                        resp.Code = Models.FUTErrorCode.GMXBlocked;
                        return(resp);
                    }
                    if (twoFactorCode.StartsWith("EXC"))
                    {
                        resp.Code    = Models.FUTErrorCode.TwoFactorFailed;
                        resp.Message = twoFactorCode.Remove(0, 3);
                        return(resp);
                    }
                    if (twoFactorCode == "000000" || twoFactorCode == "")
                    {
                        resp.Code    = Models.FUTErrorCode.TwoFactorFailed;
                        resp.Message = "Couldn't get twoFactorCode";
                        return(resp);
                    }
                    await Task.Delay(2000).ConfigureAwait(false);

                    loggedIn = await FillInTwoFactorAsync(loggedIn.RequestMessage.RequestUri.AbsoluteUri, twoFactorCode).ConfigureAwait(false);

                    loggedInString = await loggedIn.Content.ReadAsStringAsync().ConfigureAwait(false);
                }
                if (loggedInString.Contains("Eingegebener Code nicht korrekt"))
                {
                    resp.Code    = FUTErrorCode.WrongEMailCode;
                    resp.Message = "Wrong email code!";
                    return(resp);
                }
                if (!loggedIn.RequestMessage.RequestUri.AbsoluteUri.Contains("auth.html"))
                {
                    resp.Code    = Models.FUTErrorCode.NoRedirectToWebApp;
                    resp.Message = "No redirect to mobile-app";
                    return(resp);
                }
                UpdateStatistic("Grabbing EASW ID...");

                var authCode  = loggedIn.RequestMessage.RequestUri.Query.Remove(0, 6);
                var tmpBearer = await GetBearerAuthCodeAsync(authCode);

                var bearer = Regex.Match(tmpBearer, "\"access_token\" : \"(.*?)\",").Groups[1].Value;
                var easw   = await GetEaswAsync(bearer);

                var easwID = easw.pid.pidId.ToString();
                if (string.IsNullOrEmpty(easwID))
                {
                    CookieManager.DeleteCookieContainer(FUTAccount, false);
                    resp.Code    = Models.FUTErrorCode.NoEaswID;
                    resp.Message = "No easwID";
                    return(resp);
                }
                resp.NucleusID = easwID;

                HttpClient.AddRequestHeader(NonStandardHttpHeaders.NucleusId, easwID);
                HttpClient.AddRequestHeader(NonStandardHttpHeaders.EmbedError, "true");
                UpdateStatistic("Grabbing Shards...");
                var shards = await IsServerOnline();

                if (!shards)
                {
                    resp.Code    = Models.FUTErrorCode.ServerMaintenance;;
                    resp.Message = "Server offline";
                    return(resp);
                }

                HttpClient.AddRequestHeader(NonStandardHttpHeaders.SessionId, "");
                UpdateStatistic("Grabbing UserAccounts...");
                var userAccounts = await BruteforcePlatformAsync().ConfigureAwait(false);

                if (userAccounts == null || userAccounts.userAccountInfo == null || userAccounts.userAccountInfo.personas == null || userAccounts.userAccountInfo.personas.FirstOrDefault() == null)
                {
                    resp.Code    = Models.FUTErrorCode.NoUserAccounts;
                    resp.Message = "No userAccounts";
                    return(resp);
                }
                var nucleusName = userAccounts.userAccountInfo.personas.FirstOrDefault().personaName;
                var personaID   = userAccounts.userAccountInfo.personas.FirstOrDefault().personaId.ToString();
                resp.NucleusName = nucleusName;
                resp.PersonaID   = personaID;

                authCode = await GetAuthCodeAsync(bearer);

                authCode = Regex.Match(authCode, "{\"code\":\"(.*?)\"}").Groups[1].Value;
                if (string.IsNullOrEmpty(authCode))
                {
                    resp.Code    = Models.FUTErrorCode.NoSessionID;
                    resp.Message = "No authCode";
                    return(resp);
                }
                UpdateStatistic("Authing on Utas...");
                var authed = await AuthAsync(authCode, personaID).ConfigureAwait(false);

                if (authed == null || string.IsNullOrEmpty(authed.sid))
                {
                    resp.Code    = Models.FUTErrorCode.NoSessionID;
                    resp.Message = "No sid";
                    return(resp);
                }
                resp.SessionID = authed.sid;
                HttpClient.AddRequestHeader(NonStandardHttpHeaders.SessionId, authed.sid);
                await Task.Delay(3000).ConfigureAwait(false);

                UpdateStatistic("Grabbing SecurityQuestion...");
                var question = await QuestionAsync().ConfigureAwait(false);

                if (question.Code == FUTErrorCode.CaptchaTriggered || question.Code == FUTErrorCode.CaptchaTriggered2)
                {
                    var futproxy = FUTAccount.GetFUTProxy();
                    var solver   = new CaptchaSolver(futproxy);
                    var result   = await solver.DoAntiCaptcha();

                    if (result.errorId == 0)
                    {
                        await SolveCaptchaAsync(result.solution.token);

                        question = await QuestionAsync().ConfigureAwait(false);
                    }
                    else
                    {
                        resp.Code    = Models.FUTErrorCode.CaptchaException;
                        resp.Message = "Captcha failed! " + result.errorDescription;
                        return(resp);
                    }
                }
                if (!string.IsNullOrEmpty(question.token))
                {
                    HttpClient.AddRequestHeader(NonStandardHttpHeaders.PhishingToken, question.token);
                    resp.PhishingToken = question.token;

                    HttpClient.RemoveRequestHeader(NonStandardHttpHeaders.NucleusId);
                    HttpClient.RemoveRequestHeader(NonStandardHttpHeaders.Route);
                    CollectAllCookies();
                    return(resp);
                }
                UpdateStatistic("Validating SecurityQuestion...");
                var validate = await ValidateAsync().ConfigureAwait(false);

                if (string.IsNullOrEmpty(validate?.token))
                {
                    if (validate.code == "461")
                    {
                        resp.Code    = Models.FUTErrorCode.WrongSecurityAnswer;
                        resp.Message = "Wrong SecurityAnswer";
                        return(resp);
                    }
                    resp.Code    = Models.FUTErrorCode.NoPhishingToken;
                    resp.Message = "No phishingtoken";
                    return(resp);
                }
                //await QuestionAsync().ConfigureAwait(false);

                UpdateStatistic("Login success...");
                HttpClient.AddRequestHeader(NonStandardHttpHeaders.PhishingToken, validate.token);
                resp.PhishingToken = validate.token;

                HttpClient.RemoveRequestHeader(NonStandardHttpHeaders.Route);
                CollectAllCookies();
                return(resp);
            }
            catch (Exception e)
            {
                var resp = new LoginResponse();
                resp.Message = e.ToString();
                resp.Code    = FUTErrorCode.BadRequest;
                return(resp);
            }
        }
 public MoveItemToTradepileRequest(FUTAccount account, long itemID, RequestPerMinuteManager rpmManager, RequestPerMinuteManager rpmManagerSearch, LoginMethod login) : base(account, rpmManager, rpmManagerSearch, login)
 {
     _itemID = itemID;
 }
Пример #22
0
 public TransferMarketRequest(FUTAccount account, FUTSearchParameter item, bool isMuling, RequestPerMinuteManager rpmManager, RequestPerMinuteManager rpmManagerSearch, LoginMethod login) : base(account, rpmManager, rpmManagerSearch, login)
 {
     _item   = item;
     _muling = isMuling;
 }
 public RemoveItemFromTradepileRequest(FUTAccount account, long tradeID, RequestPerMinuteManager rpmManager, RequestPerMinuteManager rpmManagerSearch, LoginMethod login) : base(account, rpmManager, rpmManagerSearch, login)
 {
     _tradeID = tradeID;
 }
Пример #24
0
 public CreditsRequest(FUTAccount account, RequestPerMinuteManager rpmManager, RequestPerMinuteManager rpmManagerSearch, LoginMethod login) : base(account, rpmManager, rpmManagerSearch, login)
 {
 }
Пример #25
0
        public AccountManager()
        {
            this.RequiresAuthentication();
            Get("/accountmanager", args =>
            {
                var mod = new AccountManagerModel();

                var accounts = FUTAccountsDatabase.GetFUTAccounts();
                mod.Accounts = accounts;
                return(View["AccountManager", mod]);
            });

            Post("/accountmanager", args =>
            {
                var body       = new StreamReader(Request.Body).ReadToEnd();
                body           = HttpUtility.UrlDecode(body);
                var parameters = HttpUtility.ParseQueryString(body);

                var accounts = parameters["accounts"].Split(new[] { "\r\n", "\r", "\n" }, StringSplitOptions.None);
                foreach (var accString in accounts)
                {
                    if (accString.Split(';').Count() < 5)
                    {
                        continue;
                    }
                    var email          = accString.Split(';')[0];
                    var password       = accString.Split(';')[1];
                    var securityAnswer = accString.Split(';')[2];
                    var appAuth        = accString.Split(';')[3];
                    var emailPassword  = accString.Split(';')[4];
                    if (FUTAccountsDatabase.GetFUTAccountByEMail(email) == null)
                    {
                        var futAccount            = new FUTAccount();
                        futAccount.EMail          = email;
                        futAccount.Password       = password;
                        futAccount.SecurityAnswer = securityAnswer;
                        futAccount.GoogleAuthCode = appAuth;
                        futAccount.EMailPassword  = emailPassword;
                        futAccount.FUTPlatform    = new FUTPlatform();
                        FUTAccountsDatabase.AddFUTAccount(futAccount);
                        Fifa.Managers.BotManager.AddBot(email);
                    }
                }
                return(Response.AsRedirect("/accountmanager"));
            });

            Post("/deleteaccountarray", args =>
            {
                var body       = new StreamReader(Request.Body).ReadToEnd();
                body           = HttpUtility.UrlDecode(body);
                var parameters = HttpUtility.ParseQueryString(body);

                var accounts = parameters["account"].Split(',');

                foreach (var acc in accounts)
                {
                    FUTAccountsDatabase.RemoveFUTAccountByEMail(acc);
                    Fifa.Managers.BotManager.RemoveBot(acc);
                }
                return("true");
            });

            Post("/deleteaccount", args =>
            {
                var body       = new StreamReader(Request.Body).ReadToEnd();
                body           = HttpUtility.UrlDecode(body);
                var parameters = HttpUtility.ParseQueryString(body);
                var acc        = parameters["account"];

                FUTAccountsDatabase.RemoveFUTAccountByEMail(acc);
                Fifa.Managers.BotManager.RemoveBot(acc);
                return("true");
            });
        }
Пример #26
0
 public DiscardItemRequest(FUTAccount account, long item, bool isMuling, RequestPerMinuteManager rpmManager, RequestPerMinuteManager rpmManagerSearch, LoginMethod login) : base(account, rpmManager, rpmManagerSearch, login)
 {
     _item   = item;
     _muling = isMuling;
 }
 public DeleteActiveMessageRequest(FUTAccount account, int id, RequestPerMinuteManager rpmManager, RequestPerMinuteManager rpmManagerSearch, LoginMethod loginMethod) : base(account, rpmManager, rpmManagerSearch, loginMethod)
 {
     _id = id;
 }