public async Task <int> ContarBytesPorTextoAsync(string texto) { Browser _browser; await _geradorDeLog.GerarLogAsync($"Iniciando crawler para contagem de bytes."); await new BrowserFetcher().DownloadAsync(BrowserFetcher.DefaultRevision); _browser = await Puppeteer.LaunchAsync(new LaunchOptions { Headless = true }); try { using (var paginaBuscada = await _browser.NewPageAsync()) { await paginaBuscada.GoToAsync($"{SITEWEB}#{texto}"); await _geradorDeLog.GerarLogAsync($"Iniciando contagem de bytes."); string valorEmBytesCalculado = await paginaBuscada.EvaluateExpressionAsync <string>("document.getElementById('bytes').textContent"); return(int.Parse(valorEmBytesCalculado.Replace("bytes", ""))); } } catch (ApplicationException ex) { await _geradorDeLog.GerarLogAsync($"Erro: {ex.Message}"); await _geradorDeLog.GerarLogAsync($"Executando estratégia de fallback."); return(_contadorDeBytesWebFallback.ContarBytesDoTexto(texto)); } }
public async Task <string> Buscar() { Browser _browse; await new BrowserFetcher().DownloadAsync(BrowserFetcher.DefaultRevision); _browse = await Puppeteer.LaunchAsync(new LaunchOptions { Headless = true }); using (var page = await _browse.NewPageAsync()) { try { await page.GoToAsync(SITEWEB); await _geradorDeLog.GerarLogAsync($"Iniciando crawler para buscar texto."); string textoExtraido = await page.QuerySelectorAsync(".sentence").EvaluateFunctionAsync <string>("_ => _.innerText"); return(textoExtraido); } catch (Exception ex) { await _geradorDeLog.GerarLogAsync($"Erro: {ex.Message}"); await _geradorDeLog.GerarLogAsync($"Executando estratégia de fallback."); return(await _buscadorDeTextoWebFallback.BuscarTextoAleatorio()); } } }
private async Task ImprimirRelatorioAsync(AnaliseDto analiseDto, TiposDeRelatorio tiposDeRelatorio) { await _geradorDeLog.GerarLogAsync("Imprimindo os dados de annálise."); if (tiposDeRelatorio == TiposDeRelatorio.Tabela) { ImprimirTabelaAsync(analiseDto); } else { await ImprimirJsonAsync(analiseDto); } }
public async Task <GeradorDeArquivoResposta> ExecutarAsync(GeradorDeArquivoComando comando) { await _geradorDeLog.GerarLogAsync("Iniciando a gravação do arquivo."); var tamanhoBufferValidado = comando.TamanhoDoBufferEmBytes ?? TAMANHODOBUFFEREMBYTESDEFAULT; var buffer = new byte[tamanhoBufferValidado * 1024]; var tamanhoDoTexto = RetornarTamanhoEmBytesDaString(comando.TextoAnalisado); string textoIncremental = null; var numeroDeIteracoes = 0; do { textoIncremental += comando.TextoAnalisado; tamanhoDoTexto = RetornarTamanhoEmBytesDaString(textoIncremental); numeroDeIteracoes++; } while (tamanhoDoTexto < tamanhoBufferValidado); buffer = ASCIIEncoding.Unicode.GetBytes(textoIncremental); var nomeDoArquivo = await EscreverArquivo(comando.CaminhoDoArquivo, buffer); return(new GeradorDeArquivoResposta(nomeDoArquivo, buffer.Length, comando.CaminhoDoArquivo, numeroDeIteracoes)); }