public void StartWork(bool checked_use_time) { if (!BotCommand) { if (start_time_dtp.Value < DateTime.Now) { if (MessageBox.Show($"Выбранная дата {start_time_dtp.Value}\nРанее чем сегодняшняя.\nПродолжить поиск?", "Внимание", MessageBoxButtons.YesNo, MessageBoxIcon.Warning) != DialogResult.Yes) { button1.Enabled = true; use_telegram_chk.Enabled = true; not_use_sound_chk.Enabled = true; stop_btn.Enabled = false; see_btn.Enabled = false; return; } } } BotCommand = false; GetSettings(); dt_telegram_start = start_time = DateTime.Now; work_timer.Start(); string dt_st = filterSettings.DateStart.ToString("yyyy-MM-dd"); string dt_en = filterSettings.DateEnd.ToString("yyyy-MM-dd"); string famtecher = filterSettings.TeacherLast; string buf_response = string.Empty; //if (only_end_chk.Checked) // dt_st = dt_en; if (use_telegram_chk.Checked) { Tlw.StartTelegramMonitor((int)telega_time_out_num.Value); } int i = 0; Task.Run(async() => { while (true) { i++; try { wc.Headers.Clear(); wc.Headers.Add(HttpRequestHeader.Cookie, StaticInfo.VeriToken); buf_response = wc.DownloadString($"https://app.dscontrol.ru/Api/StudentSchedulerList?Kinds=D&OnlyMine=false×hift=-360&from={dt_st}&to={dt_en}"); _LocalUser.DriveData = JsonConvert.DeserializeObject <DataCalender>(buf_response); } catch (Exception ex) { await StaticInfo.Relogin(); if (_StateLocUser != StaticInfo.LoginState.succ) { BeginInvoke(new Action(() => { log_rich.AppendText($"Выбило из учетки, повторный логин провален\n"); stop_btn.PerformClick(); })); return; } else { BeginInvoke(new Action(() => { log_rich.AppendText($"Выбило из учетки, повторный логин проведен\n"); })); } var bb = ""; if (string.IsNullOrEmpty(buf_response)) { bb = buf_response; } BeginInvoke(new Action(() => { log_rich.AppendText($"Ошибка {ex.Message}! Тип {ex.InnerException}\nОтвет был {bb}\n"); })); } var cnt = _LocalUser.DriveData.data.Count; _LocalUser.DriveData.data = _LocalUser.DriveData.data.Where(q => q.Completed != true && q.State != 1 && q.start_date.DayOfYear >= filterSettings.DateStart.DayOfYear).ToList(); //первыичный фильтр, завершено или нет, состояние 1 = записан, 2 = не записан, дата больше чем дата старта var cnt2 = cnt - _LocalUser.DriveData.data.Count; FilteredList = _LocalUser.DriveData.data.Where(q => q.EmployeeName.Contains(famtecher)).ToList(); //фильтр фамилии foreach (var item in ConfirmItems) { if (FilteredList.Contains(item)) { FilteredList.Remove(item); } } if (filterSettings.SelectedAutodromes.Count > 0) { //фильтр площадок по айди foreach (var item in filterSettings.SelectedAutodromes) { FilteredList = FilteredList.Where(q => q.DriveID == item.SessionId).ToList(); } } //тут будет фильтр времени if (checked_use_time) { FilteredList = FilteredList.Where(q => q.start_date.TimeOfDay >= filterSettings.TimeStart).ToList(); } if (FilteredList.Count > 0) { if (!not_use_sound_chk.Checked) { smm.Stop(); smm.Play(); } } BeginInvoke(new Action(() => { log_rich.AppendText($"{work_time_lbl.Text} Найдено без фильтров {cnt}\n"); log_rich.AppendText($"{work_time_lbl.Text} После первичного осталось {cnt - cnt2}\n"); log_rich.AppendText($"{work_time_lbl.Text} И того осталось {FilteredList.Count}\n"); //log_rich.AppendText(buf_response + "\n"); log_rich.ScrollToCaret(); all_res_list.Items.Clear(); exect_res_list.Items.Clear(); not_filtered_list.Items.Clear(); foreach (var item in _LocalUser.DriveData.data) { not_filtered_list.Items.Add(item); } var st = from aw in _LocalUser.GetTotalDrive join bw in _LocalUser.DriveData.data on aw.SessionId equals bw.DriveID select bw; all_res_list.Items.AddRange(st.ToArray()); //foreach (var item in _LocalUser.DriveData.data) //{ // _LocalUser.GetTotalDrive.Where(t=>t.SessionId == item.Drive // if(item.DriveID != _LocalUser.) //} //all_res_list.Items.AddRange(_LocalUser.DriveData.data.Where(t=>t.)); counter_lbl.Text = i.ToString(); if (FilteredList.Count > 0) { exect_res_list.Items.Clear(); foreach (var item in FilteredList) { exect_res_list.Items.Add(item); } } })); GC.Collect(1, GCCollectionMode.Forced); await Task.Delay((int)(time_out_num.Value * 59950)); //запас на телегу на 50 мил сек } }, token); }
private async void login_btn_Click(object sender, EventArgs e) { StaticInfo.login = login_txt.Text; StaticInfo.pass = pass_txt.Text; plochadki_class = await StaticInfo.Relogin(); switch (plochadki_class.Success) { case StaticInfo.LoginState.succ: DoEnd(plochadki_class); break; case StaticInfo.LoginState.denied: case StaticInfo.LoginState.error: BeginInvoke(new Action(() => pictureBox1.Visible = false)); BeginInvoke(new Action(() => status_lbl.Text = "Ошибка логина")); break; } //wc.Headers.Clear(); //pictureBox1.Visible = true; //var request = (HttpWebRequest)WebRequest.Create("https://app.dscontrol.ru/Login"); //var postData = $"Login={login_txt.Text}"; //postData += "&TextPassword="******"&Password={Encoding.UTF8.GetString(bytes)}"; //postData += "&PreventPass=false"; //var data = Encoding.ASCII.GetBytes(postData); //request.Method = "POST"; //request.ContentType = "application/x-www-form-urlencoded"; //request.ContentLength = data.Length; //request.Accept = "*/*"; //request.Referer = "https://app.dscontrol.ru/login"; //await Task.Run(() => //{ // using (var stream = request.GetRequestStream()) // { // stream.Write(data, 0, data.Length); // } // HttpWebResponse response; // try // { // response = (HttpWebResponse)request.GetResponse(); // } // catch (Exception) // { // BeginInvoke(new Action(() => pictureBox1.Visible = false)); // BeginInvoke(new Action(() => status_lbl.Text = "Ошибка логина")); // return; // } // var aa = response.Headers["Set-Cookie"].Split(';')[0]; // var za = wc.DownloadString("https://app.dscontrol.ru/Api/StudentSchedulerList?Kinds=D&OnlyMine=false×hift=-360&from=2020-10-01&to=2020-10-30"); // string plochadki = string.Empty; // try // { // var zs = JsonConvert.DeserializeObject<DataCalender>(za); // plochadki = wc.DownloadString("https://app.dscontrol.ru/api/MobilePersonalData"); // plochadki_class = JsonConvert.DeserializeObject<DataUser>(plochadki); // } // catch (Exception) // { // HtmlAgilityPack.HtmlDocument hd = new HtmlAgilityPack.HtmlDocument(); // hd.LoadHtml(za); // HtmlNode formNode = hd.DocumentNode.SelectSingleNode("//input[@name='__RequestVerificationToken']"); // var signupFormId = formNode.GetAttributeValue("value", ""); // var responseString = new StreamReader(response.GetResponseStream()).ReadToEnd(); // var abb = $"__RequestVerificationToken={signupFormId}; {aa};"; // StaticInfo.VeriToken = abb; // wc.Headers.Add(HttpRequestHeader.Cookie, abb); // //из токенов выбрать айди = валетовским айди // //получить сешентайп с цветом равным выбранным токенам // //лист сешнтайп айди = айди площадок при поиске // plochadki = wc.DownloadString("https://app.dscontrol.ru/api/MobilePersonalData"); // try // { // plochadki_class = JsonConvert.DeserializeObject<DataUser>(plochadki); // //plochadki_class.Data.GetTotalDrive(); // } // catch (Exception ex) // { // Debug.WriteLine(ex.Message); // BeginInvoke(new Action(() => pictureBox1.Visible = false)); // BeginInvoke(new Action(() => status_lbl.Text = "Ошибка логина")); // return; // } // } //}); //if (plochadki_class.Success) //{ // StaticInfo.login = login_txt.Text; // StaticInfo.pass = pass_txt.Text; // DoEnd(plochadki_class); //} }