public async Task CarregaJogosDeAmanha(bool descending = false, bool headless = false, bool ignorarHorario = false) { while (ResultadosSiteHelper.CarregandoJogos) { await Task.Delay(400000); } var idContainer = _idContainerRepository.TrazerIdContainerAmanha(); if (idContainer != null && !ignorarHorario) { return; } bool depoisDasSete = DateTime.Now >= new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day, 19, 00, 00); if (depoisDasSete || ignorarHorario) { var data = DateTime.Now.Date.AddDays(1).Date; _telegramService.EnviaMensagemParaOGrupo($"Carregando Jogos de Amanhã {data}"); var container = _idContainerRepository.TrazerIdContainerAmanha(); if (container == null || !container.Ids.Any()) { IWebDriver wd3 = SeleniumHelper.CreateDefaultWebDriver(headless); ResultadoSiteService rs3 = new ResultadoSiteService(wd3); container = await rs3.SalvaJogosIds(true); wd3.Dispose(); GC.Collect(); } IWebDriver wd1 = SeleniumHelper.CreateDefaultWebDriver(headless); ResultadoSiteService rs1 = new ResultadoSiteService(wd1); IWebDriver wd2 = SeleniumHelper.CreateDefaultWebDriver(headless); ResultadoSiteService rs2 = new ResultadoSiteService(wd2); await Task.Delay(5000); Console.WriteLine($"Salvando Jogos De Amanhã as {DateTime.Now}"); Task.Factory.StartNew(async() => { await rs2.SalvaJogosDeAmanha(container, false, wd2); }); await rs1.SalvaJogosDeAmanha(container, true, wd1); ResultadosSiteHelper.CarregandoJogos = false; wd1.Dispose(); wd2.Dispose(); var jogos = _jogoRepository.TrazJogosPorIds(container.Ids.Select(ji => ji.Id).ToArray()); var jogosFSOuDobro = jogos.Where(j => j.UmTimeFazMaisGolEOutroSofreMaisGolTotal).Distinct().ToList(); var primeiroJogo = jogosFSOuDobro.OrderBy(p => p.DataInicio.TimeOfDay).FirstOrDefault(); _telegramService.EnviaMensagemParaOGrupo($"{jogosFSOuDobro.Count} jogo(s) sera(ão) analisado(s) dia {data} com Inicio as {primeiroJogo.DataInicio.TimeOfDay}"); await TentaCarregarJogosComErroHoje(); } }
public async Task TentaCarregarJogosComErroHoje(bool descending = false, bool headless = false) { while (ResultadosSiteHelper.CarregandoJogos) { await Task.Delay(400000); } var idContainer = _idContainerRepository.TrazerIdContainerHoje() ?? _idContainerRepository.TrazerIdContainerAmanha(); if (idContainer == null) { return; } IWebDriver wd1 = SeleniumHelper.CreateDefaultWebDriver(headless); IWebDriver wd2 = SeleniumHelper.CreateDefaultWebDriver(headless); ResultadoSiteService rs1 = new ResultadoSiteService(wd1); ResultadoSiteService rs2 = new ResultadoSiteService(wd2); Console.WriteLine($"Tentando carregar novamente Jogos De Hoje as {DateTime.Now}"); Task.Factory.StartNew(async() => { try { foreach (var i in idContainer.IdsComErro.OrderBy(i => i.DataInicio).Select(i => i.Id).Distinct()) { await rs1.CriarOuAtualizaInfosJogo(i, false, false); } } catch { foreach (var i in idContainer.IdsComErro.OrderBy(i => i.DataInicio).Select(i => i.Id).Distinct()) { await rs1.CriarOuAtualizaInfosJogo(i, false, false); } } }); try { foreach (var i in idContainer.IdsComErro.OrderByDescending(i => i.DataInicio).Select(i => i.Id).Distinct()) { await rs2.CriarOuAtualizaInfosJogo(i, false, false); } } catch { foreach (var i in idContainer.IdsComErro.OrderByDescending(i => i.DataInicio).Select(i => i.Id).Distinct()) { await rs2.CriarOuAtualizaInfosJogo(i, false, false); } } ResultadosSiteHelper.CarregandoJogos = false; wd1.Dispose(); wd2.Dispose(); }
public async Task CarregaJogosDeHojeH2H(bool descending = false, bool headless = false, bool ignorarHorario = false) { while (ResultadosSiteHelper.CarregandoJogos) { await Task.Delay(400000); } var idContainer = _idContainerRepository.TrazerIdContainerHoje(); if (idContainer != null && !ignorarHorario) { return; } bool depoisDasSete = DateTime.Now >= new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day, 19, 00, 00); if (depoisDasSete || ignorarHorario) { var data = DateTime.Now.Date.AddDays(1).Date; _telegramService.EnviaMensagemParaOGrupo($"Carregando Jogos de Hoje {data}"); var container = _idContainerRepository.TrazerIdContainerHoje(); if (container == null || !container.Ids.Any()) { IWebDriver wd3 = SeleniumHelper.CreateDefaultWebDriver(headless); ResultadoSiteService rs3 = new ResultadoSiteService(wd3); container = await rs3.SalvaJogosIds(true); wd3.Dispose(); GC.Collect(); } IWebDriver wd1 = SeleniumHelper.CreateDefaultWebDriver(headless); ResultadoSiteService rs1 = new ResultadoSiteService(wd1); IWebDriver wd2 = SeleniumHelper.CreateDefaultWebDriver(headless); ResultadoSiteService rs2 = new ResultadoSiteService(wd2); await Task.Delay(5000); Console.WriteLine($"Salvando Jogos De Hoje as {DateTime.Now}"); Task.Factory.StartNew(async() => { await rs2.SalvaJogosDeHojeH2H(container, false, wd2); }); await rs1.SalvaJogosDeHojeH2H(container, true, wd1); AnalisaJogosH2H(container); ResultadosSiteHelper.CarregandoJogos = false; wd1.Dispose(); wd2.Dispose(); } }
public async Task SalvaJogosDeAmanhaH2H(IdContainer container, bool descending = false, IWebDriver driver = null, TimeSpan?acimaDe = null) { if (driver != null) { _driver = driver; } Console.WriteLine($"Salvando Jogos De Amanhã as {DateTime.Now}"); ResultadosSiteHelper.CarregandoJogos = true; var ids = descending ? container.Ids.OrderByDescending(id => id.DataInicio.TimeOfDay).ToList() : container.Ids.OrderBy(id => id.DataInicio.TimeOfDay).ToList(); if (acimaDe != null) { ids = ids.Where(i => i.DataInicio.TimeOfDay >= acimaDe.Value).ToList(); } try { Task.Factory.StartNew(async() => { IWebDriver wd2 = SeleniumHelper.CreateDefaultWebDriver(true); ResultadoSiteService rs2 = new ResultadoSiteService(wd2); for (int i = 0; i < ids.Count; i++) { if (i % 2 == 0) { await rs2.CriarOuAtualizaInfosJogoH2H(ids[i].Id, container.Id, true); } } wd2.Dispose(); }); for (int i = 0; i < ids.Count; i++) { if (i % 2 != 0) { await CriarOuAtualizaInfosJogoH2H(ids[i].Id, container.Id, true); } } } catch (Exception e) { _telegramService.EnviaMensagemParaOGrupo($"Erro: {e.Message}"); } ResultadosSiteHelper.CarregandoJogos = false; }
public async Task CarregaJogosDeHoje(bool descending = false, bool headless = false) { while (ResultadosSiteHelper.CarregandoJogos) { await Task.Delay(400000); } _telegramService.EnviaMensagemParaOGrupo($"Carregando Jogos de Hoje {DateTime.Now.Date}"); var container = _idContainerRepository.TrazerIdContainerHoje(); if (container == null || !container.Ids.Any()) { IWebDriver wd3 = SeleniumHelper.CreateDefaultWebDriver(headless); ResultadoSiteService rs3 = new ResultadoSiteService(wd3); container = await rs3.SalvaJogosIds(); wd3.Dispose(); GC.Collect(); } IWebDriver wd1 = SeleniumHelper.CreateDefaultWebDriver(headless); ResultadoSiteService rs1 = new ResultadoSiteService(wd1); IWebDriver wd2 = SeleniumHelper.CreateDefaultWebDriver(headless); ResultadoSiteService rs2 = new ResultadoSiteService(wd2); Task.Factory.StartNew(async() => { await rs2.SalvaJogosDeHoje(container, false, wd2); }); await rs1.SalvaJogosDeHoje(container, true, wd1); ResultadosSiteHelper.CarregandoJogos = false; wd1.Dispose(); wd2.Dispose(); var jogos = _jogoRepository.TrazJogosPorIds(container.Ids.Select(ji => ji.Id).ToArray()); var jogosFSOuDobro = jogos.Where(j => j.UmTimeFazMaisGolEOutroSofreMaisGolTotal).Distinct().ToList(); var primeiroJogo = jogosFSOuDobro.OrderBy(p => p.DataInicio.TimeOfDay).FirstOrDefault(); _telegramService.EnviaMensagemParaOGrupo($"{jogosFSOuDobro.Count} jogo(s) sera(ão) analisado(s) dia {DateTime.Now.Date} com Inicio as {primeiroJogo.DataInicio.TimeOfDay}"); // await TentaCarregarJogosComErroHoje(); }
public async Task StartAnaliseLive(bool descending = false) { while (true) { GC.Collect();; await CarregaJogosDeAmanha(descending, true); var jogos = ListaDeJogos().Where(i => TempoDiferencaJogo(i) > 1 && TempoDiferencaJogo(i) < 80).ToList(); if (!jogos.Any()) { Console.WriteLine($"Nenhum Jogo Para Analisar no Momento as {DateTime.Now} Aguardando 3 Minutos..."); await Task.Delay(TimeSpan.FromMinutes(3)); } ; if (jogos.Any()) { if (jogos.Count > 5) { if (this._driver != null) { this._driver.Dispose(); this._driver = SeleniumHelper.CreateDefaultWebDriver(true); } } if (this._driver == null) { this._driver = SeleniumHelper.CreateDefaultWebDriver(true); } _jogoService = new JogoService(_driver); foreach (var i in jogos) { var minutagem = TempoDiferencaJogo(i); try { Console.WriteLine($"Analisando ID: {i.IdJogoBet} as {DateTime.Now}"); await CriarOuAtualizaInfosJogo(i.IdJogoBet); var jogo = _jogoRepository.TrazerJogoPorIdBet(i.IdJogoBet); if (jogo != null) { jogo.Minutos = minutagem.ToString(); bool jogoProntoParaAnalise = _jogoRepository.JogoProntoParaAnalise(i.IdJogoBet); if (jogoProntoParaAnalise) { jogo.Observacoes = jogos.FirstOrDefault(j => j.IdJogoBet == jogo.IdJogoBet).Observacoes; _analiseService.AnalisaJogoLive(jogo); } } } catch (Exception e) { var msg = e.Message; Console.WriteLine("Erro: " + e.Message + " IdBet: " + i.IdJogoBet); _driver.Dispose(); } } } } }
public async Task PegaInformacoesH2H(Jogo jogo) { if (_driver == null) { _driver = SeleniumHelper.CreateDefaultWebDriver(); } _driver.Navigate().GoToUrl($"https://www.resultados.com/jogo/{jogo.IdJogoBet}#h2h;overall"); await Task.Delay(2000); var showMores = _driver.FindElements(By.ClassName("show_more")); showMores[0].Click(); showMores[1].Click(); //var tabelas = _driver.FindElements(By.ClassName("h2h-wrapper")); var trsTime1 = _driver.FindElement(By.ClassName("h2h_home")) .FindElement(By.TagName("tbody")) .FindElements(By.TagName("tr")); var trsTime2 = _driver.FindElement(By.ClassName("h2h_away")) .FindElement(By.TagName("tbody")) .FindElements(By.TagName("tr")); List <H2HInfo> h2hInfoListTime1 = new List <H2HInfo>(); List <H2HInfo> h2hInfoListTime2 = new List <H2HInfo>(); if (trsTime1.Count < 10 || trsTime2.Count < 10) { return; } foreach (var tr in trsTime1.Take(10)) { h2hInfoListTime1.Add(CriarH2HInfo(tr)); } foreach (var tr in trsTime2.Take(10)) { h2hInfoListTime2.Add(CriarH2HInfo(tr)); } jogo.Time1.H2HInfos = h2hInfoListTime1; jogo.Time2.H2HInfos = h2hInfoListTime2; jogo.Time1.GolsRealizadosH2H = jogo.Time1.H2HInfos.Sum(j => j.GolsTime1); jogo.Time2.GolsRealizadosH2H = jogo.Time2.H2HInfos.Sum(j => j.GolsTime1); jogo.Time1.GolsSofridosH2H = jogo.Time1.H2HInfos.Sum(j => j.GolsTime2); jogo.Time2.GolsSofridosH2H = jogo.Time2.H2HInfos.Sum(j => j.GolsTime2); jogo.Time1.PercOverUltimosJogos = (new decimal(jogo.Time1.H2HInfos.Count(j => j.TotalGols > 2)) / new decimal(jogo.Time1.H2HInfos.Count)) * new decimal(100); jogo.Time2.PercOverUltimosJogos = (new decimal(jogo.Time2.H2HInfos.Count(j => j.TotalGols > 2)) / new decimal(jogo.Time2.H2HInfos.Count)) * new decimal(100); jogo.Time1.QtdJogosH2H05 = jogo.Time1.H2HInfos.Count(j => j.TotalGols == 1); jogo.Time1.QtdJogosH2H15 = jogo.Time1.H2HInfos.Count(j => j.TotalGols == 2); jogo.Time1.QtdJogosH2H25 = jogo.Time1.H2HInfos.Count(j => j.TotalGols >= 3); jogo.Time2.QtdJogosH2H05 = jogo.Time2.H2HInfos.Count(j => j.TotalGols == 1); jogo.Time2.QtdJogosH2H15 = jogo.Time2.H2HInfos.Count(j => j.TotalGols == 2); jogo.Time2.QtdJogosH2H25 = jogo.Time2.H2HInfos.Count(j => j.TotalGols >= 3); jogo.Time1.QtdJogosUnderH2H25 = jogo.Time1.H2HInfos.Count(j => j.TotalGols <= 2); jogo.Time1.QtdJogosUnderH2H35 = jogo.Time1.H2HInfos.Count(j => j.TotalGols <= 3); jogo.Time1.QtdJogosUnderH2H45 = jogo.Time1.H2HInfos.Count(j => j.TotalGols <= 4); jogo.Time1.QtdJogosH2HOver15 = jogo.Time1.H2HInfos.Count(j => j.TotalGols >= 2); jogo.Time1.QtdJogosH2HOver25 = jogo.Time1.H2HInfos.Count(j => j.TotalGols >= 3); jogo.Time2.QtdJogosUnderH2H25 = jogo.Time2.H2HInfos.Count(j => j.TotalGols <= 2); jogo.Time2.QtdJogosUnderH2H35 = jogo.Time2.H2HInfos.Count(j => j.TotalGols <= 3); jogo.Time2.QtdJogosUnderH2H45 = jogo.Time1.H2HInfos.Count(j => j.TotalGols <= 4); jogo.Time2.QtdJogosH2HOver15 = jogo.Time2.H2HInfos.Count(j => j.TotalGols >= 2); jogo.Time2.QtdJogosH2HOver25 = jogo.Time2.H2HInfos.Count(j => j.TotalGols >= 3); }