public void Authenticate(string login, string password) //Авторизация { _controlFormProgramm.FirstStateProgramm(); _controlFormProgramm.ProcessBarSetValue(10); _controlFormProgramm.SetTextStateLabel("Идёт процесс авторизации .."); _driver.Navigate().GoToUrl("https://www.instagram.com/accounts/login/"); _driver.FindElement(By.CssSelector("input[name='username']")).SendKeys(login); _driver.FindElement(By.CssSelector("input[name='password']")).SendKeys(password); _driver.FindElement(By.CssSelector("input[name='password']")).SendKeys(OpenQA.Selenium.Keys.Enter); _controlFormProgramm.ProcessBarSetValue(40); try //логин и пасс не подхзодят (без смс) { String err = _driver.FindElement(By.CssSelector("#slfErrorAlert")).Text; ControlFormProgramm.MsgLogBox.AddMsg(err); _controlFormProgramm.NoAuthAccount(); _controlFormProgramm.ProcessBarSetValue(100); _controlFormProgramm.SetTextStateLabel("Ошибка."); Console.WriteLine(err); accountIsLoggedIn = 0; } catch (Exception) { //логин и пасс подходят ControlFormProgramm.MsgLogBox.AddMsg("Логин и пароль, прошли проверку"); Console.WriteLine("log and pass is good"); _controlFormProgramm.ProcessBarSetValue(70); if (IsSMSOnPagePresent("Подозрительная попытка входа") == true) //чек на СМС { ControlFormProgramm.MsgLogBox.AddMsg("Необходима смс верификация"); PostSMS(); //post SMS } else { ControlFormProgramm.MsgLogBox.AddMsg("Cмс верификация не требуется"); try { _controlFormProgramm.ProcessBarSetValue(90); // _driver.FindElement(By.CssSelector("body > div.RnEpo.Yx5HN > div > div > div.mt3GC > button.aOOlW.HoLwm")).Click(); //отменяем опвещения _controlFormProgramm.YesAuthAccount(); _controlFormProgramm.ProcessBarSetValue(100); _controlFormProgramm.SetTextStateLabel("Процесс авторизации завершен."); ControlFormProgramm.MsgLogBox.AddMsg("Внимание! Перед началом работы, внимательно ознакомтесь с ограничениями и лимитами инстаграма: http://instagrammar.ru/raskrutka/limity-i-ogranicheniya-instagram-podpiski-i-podpischiki-otpiski-i-lajki/"); ControlFormProgramm.MsgLogBox.AddMsg("Программа готова к работе.."); accountIsLoggedIn = 1; } catch (Exception) { } } } }
public void MarkRun(string url, string endUrl, string htmlOpenPost, string htmlClickButtonMark, string htmlNextPost, string htmlGetButtonMark, string nameAttributButtonMark, string htmlTextPanel, int time_wait, int limit, string filters_positive, string filters_negative, CancellationToken cancelToken) { _driver.Navigate().GoToUrl(url + endUrl); _driver.FindElement(By.CssSelector(htmlOpenPost)).Click(); // открыть пост Самая первая запись в теге double dlimit = Convert.ToDouble(limit); for (int i = 1; i <= limit; i++) { if (Form1.stoped != 1) { try { if (GetIsCheckedLike(htmlGetButtonMark, nameAttributButtonMark) == false && Filters_positive_word(filters_positive, htmlTextPanel) == true && Filters_negative_word(filters_negative, htmlTextPanel) == false) { double di = Convert.ToDouble(i); _driver.FindElement(By.CssSelector(htmlClickButtonMark)).Click(); //кнопка лайка в открытом посте ControlFormProgramm.MsgLogBox.AddMsg(_driver.Url + " метка добавлена" + " (" + positive_filter_view_in_msg_box + ")"); _controlFormProgramm.ProcessBarSetValue(Convert.ToInt32(di / dlimit * 100)); _controlFormProgramm.SetTextStateLabel(limit + " / " + i + " (" + Convert.ToInt32(di / dlimit * 100) + " %)"); _driver.FindElement(By.CssSelector(htmlNextPost)).Click(); //следующий пост cancelToken.WaitHandle.WaitOne(TimeSpan.FromSeconds(time_wait)); _controlFormProgramm.reWriteXMLConfig(i); //перезапписать конфиг } else { cancelToken.WaitHandle.WaitOne(TimeSpan.FromSeconds(1)); ControlFormProgramm.MsgLogBox.AddMsg(_driver.Url + " пропускаем (" + negative_filter_view_in_msg_box + ")"); _driver.FindElement(By.CssSelector(htmlNextPost)).Click(); //следующий пост i = i - 1; double di = Convert.ToDouble(i); _controlFormProgramm.SetTextStateLabel(limit + " / " + i + " (" + Convert.ToInt32(di / dlimit * 100) + " %)"); } if (i >= limit) { //цикл выполнен _controlFormProgramm.ProcessBarSetValue(100); ControlFormProgramm.MsgLogBox.AddMsg("======================="); ControlFormProgramm.MsgLogBox.AddMsg(" Завершено."); ControlFormProgramm.MsgLogBox.AddMsg("======================="); _controlFormProgramm.SetTextStateLabel("Завершено."); _controlFormProgramm.Stop(); } } catch (Exception e) { ControlFormProgramm.MsgLogBox.AddMsg("Error: " + e.Message); i = i - 1; _driver.FindElement(By.CssSelector(htmlNextPost)).Click(); //следующий пост } } //принудительная остановка else { i = limit; _controlFormProgramm.ProcessBarSetValue(100); ControlFormProgramm.MsgLogBox.AddMsg("======================="); ControlFormProgramm.MsgLogBox.AddMsg(" Остановлено."); ControlFormProgramm.MsgLogBox.AddMsg("======================="); _controlFormProgramm.SetTextStateLabel("Остановлено."); _controlFormProgramm.Stop(); } } }
public void Start() { _props.setXML(0); //save cfg _сontrolFormProgramm.ProcessBarSetValue(0); stoped = 0; ControlFormProgramm.MsgLogBox.AddMsg("Процесс запущен, ожидание потока.."); String tag = textBox3.Text; String geonumber = textBox4.Text; int time_wait = Int32.Parse(textBox5.Text); int limit = Int32.Parse(textBox6.Text); _сontrolFormProgramm.Start(); label3.Text = "000 / 00 (00 %)"; String filters_positive = textBox7.Text.Trim().Replace(" ", ""); if (filters_positive.Substring(filters_positive.Length - 1, 1) == ",") { filters_positive = filters_positive.Remove(filters_positive.Length - 1); } //обрезать если лишняя запятая в фтльтрах String filters_negative = textBox8.Text.Trim().Replace(" ", ""); if (filters_negative.Substring(filters_negative.Length - 1, 1) == ",") { filters_negative = filters_negative.Remove(filters_negative.Length - 1); } //обрезать если лишняя запятая в фтльтрах _tokenSource = new CancellationTokenSource(); CancellationToken cancelToken = _tokenSource.Token; try { //обратите внимание на передачу токена отмены, и экземпл. прогресса Task.Factory.StartNew(() => { //new thread if (radioButton1.Checked == true) { if (radioButton3.Checked == true) { _like.Tags(tag, time_wait, limit, filters_positive, filters_negative, cancelToken); } if (radioButton4.Checked == true) { _like.Geolocation(geonumber, time_wait, limit, filters_positive, filters_negative, cancelToken); } } if (radioButton6.Checked == true) { if (radioButton3.Checked == true) { //подписка по тэгу _subscribe.Tags(tag, time_wait, limit, filters_positive, filters_negative, cancelToken); } if (radioButton4.Checked == true) { _subscribe.Geolocation(geonumber, time_wait, limit, filters_positive, filters_negative, cancelToken); } } }); } catch (OperationCanceledException) { Console.WriteLine("Задача отменена."); } catch (Exception ex) { MessageBox.Show("В задаче произошла ошибка: " + ex, "Threads error", MessageBoxButtons.OK, MessageBoxIcon.Error); } }