/// <summary> /// Использование хрома в качестве браузера /// </summary> public void InitializeChromeWithProxy() { ChromeOptions options = new ChromeOptions(); foreach (var item in myProxies.ToList()) { if (item.UsedActivation >= 3) { continue; } else { currentProxy = new MyProxy(item.IpAddress, item.Port); options.AddArguments("--proxy-server=socks4://" + item.IpAddress + ":" + item.Port); break; } } options.AddArgument("--user-data-dir=" + Directory.GetCurrentDirectory() + @"\Chrome"); if (settings.HiddenMode) { options.AddArgument("--headless"); options.AddArgument("--disable-gpu"); options.AddArgument("--allow-insecure-localhost"); options.AddArgument("--window-size=1920,1080"); } else { options.AddArgument("--incognito"); } ChromeDriverService service = ChromeDriverService.CreateDefaultService(); service.HideCommandPromptWindow = true; driver = new ChromeDriver(service, options); driver.Manage().Timeouts().PageLoad = TimeSpan.FromSeconds(40); }
/// <summary> /// Удалить выбранный прокси /// </summary> private void DeleteProxy_Click(object sender, RoutedEventArgs e) { var p = ProxiesDataGrid.SelectedItem as MyProxy; operaWebDriver.myProxies.Remove(p); MyProxy.SaveProxies(operaWebDriver.myProxies); LoadProxies(); }
/// <summary> /// Сохранить прокси /// </summary> private void ProxiesSaveButton_Click(object sender, RoutedEventArgs e) { var prox = ProxiesDataGrid.ItemsSource as List <MyProxy>; operaWebDriver.myProxies = prox; MyProxy.SaveProxies(prox); LoadProxies(); }
/// <summary> /// Инициализация класса /// </summary> public void InitializeWebDriver() { accounts = Account.LoadAccounts(); refferals = Refferal.LoadRefferals(); myProxies = MyProxy.LoadProxies(); settings = new MySettings(); settings.LoadSettings(); phone = new PhoneNumber(); phone.SetApiKey(settings.SmsApiKey); }
/// <summary> /// Возможна ли регистрация в настоящее время /// </summary> /// <returns>данет</returns> public bool IsRegistrationAvaliable() { if (driver.FindElement(By.ClassName("field-registrationform-first_name")).GetAttribute("innerHTML").Contains("в настоящее время регистрация невозможна")) { myProxies.Where(x => x.IpAddress == currentProxy.IpAddress).FirstOrDefault().UsedActivation = 3; MyProxy.SaveProxies(myProxies); return(false); } else { return(true); } }
/// <summary> /// Добавление новых прокси из файла /// </summary> public void AddNewProxies(string pathToFile) { var res = MyProxy.GetNewProxies(myProxies, pathToFile); if (res == null) { MessageBox.Show("Прокси не добавлены."); } else { myProxies = res; } MyProxy.SaveProxies(myProxies); }
/// <summary> /// Регистрация подтверждена /// </summary> /// <param name="account">Аккаунт на котором проводилась регистрация</param> /// <param name="refferal">Реферальный код на котором проводилась регистация</param> public void RegisterConfirmed(Account account, Refferal refferal) { account.SaveAccountInfo("Зарегистрирован"); accounts.Remove(accounts.First()); Account.SaveAccounts(accounts); refferal.ActivatedAccounts++; Refferal.SaveRefferals(refferals); if (settings.SelectedBrowser == "Chrome") { var prx = myProxies.Where(x => x.IpAddress == currentProxy.IpAddress).FirstOrDefault(); prx.UsedActivation++; myProxies.Remove(myProxies.Where(x => x.IpAddress == prx.IpAddress).FirstOrDefault()); myProxies.Add(prx); MyProxy.SaveProxies(myProxies); } }
/// <summary> /// Работает ли прокси /// </summary> /// <returns>данет</returns> public bool IsProxyCanUsed() { try { if (driver.PageSource.Count() < 50 || driver.PageSource.Contains("error-code")) { myProxies.Where(x => x.IpAddress == currentProxy.IpAddress).FirstOrDefault().UsedActivation = 3; MyProxy.SaveProxies(myProxies); return(false); } else { return(true); } } catch (Exception e) { WriteLog(e.ToString()); return(false); } }
/// <summary> /// Удалить все прокси /// </summary> private void DeleteAllProxiesButton_Click(object sender, RoutedEventArgs e) { operaWebDriver.myProxies = new List <MyProxy>(); MyProxy.SaveProxies(operaWebDriver.myProxies); LoadProxies(); }