diff --git a/Desenvolvimento/Codificacao/e-Selo/WebContent/WEB-INF/jsp/painelAcessibilidade/painelAcessibilidade.jsp b/Desenvolvimento/Codificacao/e-Selo/WebContent/WEB-INF/jsp/painelAcessibilidade/painelAcessibilidade.jsp index 7e8719a..d19b91c 100644 --- a/Desenvolvimento/Codificacao/e-Selo/WebContent/WEB-INF/jsp/painelAcessibilidade/painelAcessibilidade.jsp +++ b/Desenvolvimento/Codificacao/e-Selo/WebContent/WEB-INF/jsp/painelAcessibilidade/painelAcessibilidade.jsp @@ -33,6 +33,8 @@
+ + ${url.id}"-" ${url.url}"-" ${url.codHash} "-" ${url.idSitio} "-"
@@ -42,6 +44,7 @@
+



diff --git a/Desenvolvimento/Codificacao/e-Selo/WebContent/static/css/painelAcessibilidade.css b/Desenvolvimento/Codificacao/e-Selo/WebContent/static/css/painelAcessibilidade.css index f34f72e..e336532 100644 --- a/Desenvolvimento/Codificacao/e-Selo/WebContent/static/css/painelAcessibilidade.css +++ b/Desenvolvimento/Codificacao/e-Selo/WebContent/static/css/painelAcessibilidade.css @@ -1,5 +1,9 @@ +@media only screen and (min-width : 768px) { body { - margin: 0; + margin-top: 30px; + margin-left: 0; + margin-right:0; + margin-bottom:0; background-color: #ffffff; color: #000000; font-size: 61%; @@ -62,7 +66,7 @@ a { #accessibility { display: inline; margin-left: 12%; - padding-top: 15px; + padding-top: 5px; text-align: left; float: left; padding-left: 0; @@ -70,7 +74,7 @@ a { } h1 { - padding-top: 100px; + padding-top: 50px; } #accessibility li { @@ -130,7 +134,7 @@ Table { height: 280px; border-left: 1px solid #000000; border-right: 1px solid #000000; - background: #97aeec; + /*background: #97aeec;*/ text-align: center; float: left; } @@ -214,4 +218,422 @@ a.oculto { #voltar-topo { text-align: right; font-size: 12px; -} \ No newline at end of file +} + + +#webaxscore { + /*background: transparent url("img/bg.png") repeat scroll left top;*/ + color: #000000; + float: left; + margin: 8px 10% 1em 12%; + padding: 2em; + text-align: center; + width: 6em; + height: 4em; + } + #webaxscore h3 { + font-size: 2em; + font-weight: normal; + line-height: 1em; + margin: 0; + padding: 0; + } + #webaxscore em, #webaxscore strong { + font-size: 0.7em; + margin: 0; + padding: 0; + } + #webaxscore span { + display: block; + font-size: 2em; + font-weight: bold; + line-height: 1em; + } + + div.scoreB_bom { + background-color: #0d0 !important; + border: 4px solid #090; + color: #fff !important; + /*text-shadow: 0.1em 0.1em 0.1em #000000;*/ + } + + div.scoreB_razoavel { + background-color: #ffff00 !important; + border: 4px solid #f2f200; + color: #000000!important; + /*text-shadow: 0.1em 0.1em 0.1em #000000;*/ + } + div.scoreB_ruim { + background-color: #ff8000 !important; + border: 4px solid #e17100; + color: #000000!important; + /*text-shadow: 0.1em 0.1em 0.1em #000000;*/ + } + + div.scoreB_pessimo { + background-color: #ff0000 !important; + border: 4px solid #ea0000; + color: #fff !important; + /*text-shadow: 0.1em 0.1em 0.1em #000000;*/ + } + div.block { + background: #ffa none repeat scroll 0 0; + border: 1px solid #999; + color: #000000; + margin-left: 10%; + width: 28%; + } + + #bom + { + width: 80px; + height: 20px; + + } + #razoavel + { + width: 125px; + height: 20px;; + } + #ruim + { + width: 127px; + height: 20px;; + } + #pessimo + { + width: 70px; + height: 20px; + } + + #legenda{ + text-align: left; + padding-left: 10px; + width: 180px; + float: left; + } + .legenda + { + list-style: none; + margin-top: 2px; + } +} /*-----Fim max-width: 1024px */ + +/*------Inicio max-width: 768px----*/ +@media only screen and (max-width : 768px) { + body { + margin-top: 30px; + margin-left: 0; + margin-right:0; + margin-bottom:0; + background-color: #ffffff; + color: #000000; + font-size: 61%; + font-weight: normal; + font-family: "Open Sans", Arial, Helvetica, sans-serif; +} + +header { + width: 100%; + /*Banner*/ + /* height: 132px;*/ + background-color: #19882c; + /* Old browsers */ + background-color: #0A5517; + background-image: -moz-radial-gradient(center, ellipse cover, #19882c 1%, #025310 100%); + /* FF3.6+ */ + background-image: -webkit-gradient(radial, center center, 0px, center center, 100%, + color-stop(1%, #19882c), color-stop(100%, #025310)); + /* Chrome,Safari4+ */ + background-image: -webkit-radial-gradient(center, ellipse cover, #19882c 1%, #025310 100%); + /* Chrome10+,Safari5.1+ */ + background-image: -o-radial-gradient(center, ellipse cover, #19882c 1%, #025310 100%); + /* Opera 12+ */ + background-image: -ms-radial-gradient(center, ellipse cover, #19882c 1%, #025310 100%); + /* IE10+ */ + background-image: radial-gradient(ellipse at center, #19882c 1%, #025310 100%); + /* W3C */ + /*filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#19882c',endColorstr='#025310', GradientType=1); + IE6-9 fallback on horizontal gradient */ + height: 200px; +} + +.oculto { + display: none; +} + +.oculto_visao { + list-style-type: none; + position: absolute; + left: -999em; +} + +a { + text-decoration: none; +} + +#barra-brasil { + position: absolute; + width: 100%; + top: 0; + left: 0; +} + +#topo { + width: 93.75%; + margin: auto; + padding: 0; +} + +#accessibility { + display: inline; + margin-left: 12%; + padding-top: 5px; + text-align: left; + float: left; + padding-left: 0; + width: 100% +} + +h1 { + padding-top: 100px; +} + +#accessibility li { + display: inline; +} + +#accessibility a { + color: #ffffff; + font-size: 1.2em; + padding-right: 10px; + font-family: Arial, Helvetica, sans-serif; +} + +#accessibility span { + background: #ffffff; + font-weight: bold; + color: #327241; + padding: 0 4px; +} + +#accessibility a:hover { + border-bottom: 1px solid; +} + +.contanner { + font-size: 14px; + margin: auto; + border: 0; +} + + + +#logo { + color: #ffffff !important; + padding: 0; + padding-left: 12%; +} + +#portal-title-1 { + position: relative; +} + +#emag { + width: 15em; + height: 20em; + background: #92d68f; + text-align: center; + float: left; +} + +#testesAutomaticos { + width: 15em; + height: 20em; + border-left: 1px solid #000000; + border-right: 1px solid #000000; + /*background: #97aeec;*/ + text-align: center; + float: left; +} + +#grafico { + width: 35em; + height: 20em; + text-align: center; + +} + +.myChart { + width: 30em !important; + height: 15em !important; +} + +element.style { + width: 35em; + height: 20em; +} + +.logoAvaliacao { + margin-top: 10px; + width: 30.15em; + height: 35em; + background: #ffffff; + border-style: solid; + border-color: #000000; + border-width: 1px; +} + +.logoAvaliacao label { + position: relative; + top: 45%; +} + +.avaliacao { + width: 30.15em; + background: #ffffff; + border-style: solid; + border-color: #000000; + border-width: 1px; +} + +table { + margin-left: 10px; + width: 35em; + font-size: 0.8em; + border-collapse: collapse; +} + + +.table, th, td { + border: 2px solid #000000; +} + +table th { + background: #585450; + color: #ffffff; +} + +.avaliacao label { + margin-left: 10px; +} + +.avaliacao hr { + margin-left: 10px; + margin-right: 10px; +} + +#footer-brasil { + background: none repeat scroll 0% 0% #00420c; + padding: 1em 0px; + max-width: 100%; +} + +a.oculto { + display: inline-block; + font-size: 0; + text-indent: -20000px; +} + +#voltar-topo { + text-align: right; + font-size: 12px; +} + +#webaxscore { + /*background: transparent url("img/bg.png") repeat scroll left top;*/ + color: #000000; + float: left; + margin: 8px 10% 1em 12%; + padding: 2em; + text-align: center; + width: 6em; + height: 4em; + } + #webaxscore h3 { + font-size: 2em; + font-weight: normal; + line-height: 1em; + margin: 0; + padding: 0; + } + #webaxscore em, #webaxscore strong { + font-size: 0.7em; + margin: 0; + padding: 0; + } + #webaxscore span { + display: block; + font-size: 2em; + font-weight: bold; + line-height: 1em; + } + + div.scoreB_bom { + background-color: #0d0 !important; + border: 4px solid #090; + color: #fff !important; + /*text-shadow: 0.1em 0.1em 0.1em #000000;*/ + } + + div.scoreB_razoavel { + background-color: #ffff00 !important; + border: 4px solid #f2f200; + color: #000000!important; + /*text-shadow: 0.1em 0.1em 0.1em #000000;*/ + } + div.scoreB_ruim { + background-color: #ff8000 !important; + border: 4px solid #e17100; + color: #000000!important; + /*text-shadow: 0.1em 0.1em 0.1em #000000;*/ + } + + div.scoreB_pessimo { + background-color: #ff0000 !important; + border: 4px solid #ea0000; + color: #fff !important; + /*text-shadow: 0.1em 0.1em 0.1em #000000;*/ + } + div.block { + background: #ffa none repeat scroll 0 0; + border: 1px solid #999; + color: #000000; + margin-left: 10%; + width: 28%; + } + + #bom + { + width: 80px; + height: 20px; + + } + #razoavel + { + width: 125px; + height: 20px;; + } + #ruim + { + width: 127px; + height: 20px;; + } + #pessimo + { + width: 70px; + height: 20px; + } + + #legenda{ + text-align: left; + padding-left: 10px; + width: 180px; + float: left; + } + .legenda + { + list-style: none; + margin-top: 2px; + } + } \ No newline at end of file diff --git a/Desenvolvimento/Codificacao/e-Selo/WebContent/static/img/amarelo.png b/Desenvolvimento/Codificacao/e-Selo/WebContent/static/img/amarelo.png new file mode 100644 index 0000000..877d525 Binary files /dev/null and b/Desenvolvimento/Codificacao/e-Selo/WebContent/static/img/amarelo.png differ diff --git a/Desenvolvimento/Codificacao/e-Selo/WebContent/static/img/laranja.png b/Desenvolvimento/Codificacao/e-Selo/WebContent/static/img/laranja.png new file mode 100644 index 0000000..b91b2bb Binary files /dev/null and b/Desenvolvimento/Codificacao/e-Selo/WebContent/static/img/laranja.png differ diff --git a/Desenvolvimento/Codificacao/e-Selo/WebContent/static/img/verde.png b/Desenvolvimento/Codificacao/e-Selo/WebContent/static/img/verde.png new file mode 100644 index 0000000..612aaaf Binary files /dev/null and b/Desenvolvimento/Codificacao/e-Selo/WebContent/static/img/verde.png differ diff --git a/Desenvolvimento/Codificacao/e-Selo/WebContent/static/img/vermelho.png b/Desenvolvimento/Codificacao/e-Selo/WebContent/static/img/vermelho.png new file mode 100644 index 0000000..3d769f2 Binary files /dev/null and b/Desenvolvimento/Codificacao/e-Selo/WebContent/static/img/vermelho.png differ diff --git a/Desenvolvimento/Codificacao/e-Selo/WebContent/static/js/chart.js b/Desenvolvimento/Codificacao/e-Selo/WebContent/static/js/chart.js index 554c682..ca9fa00 100644 --- a/Desenvolvimento/Codificacao/e-Selo/WebContent/static/js/chart.js +++ b/Desenvolvimento/Codificacao/e-Selo/WebContent/static/js/chart.js @@ -37,6 +37,7 @@ $(document).ready(function() { }; var option = { + showLines: true }; var myLineChart = Chart.Line(canvas,{ diff --git a/Desenvolvimento/Codificacao/e-Selo/src/main/java/br/com/eselo/controller/AvaliacaoController.java b/Desenvolvimento/Codificacao/e-Selo/src/main/java/br/com/eselo/controller/AvaliacaoController.java index ab07bdc..3977270 100644 --- a/Desenvolvimento/Codificacao/e-Selo/src/main/java/br/com/eselo/controller/AvaliacaoController.java +++ b/Desenvolvimento/Codificacao/e-Selo/src/main/java/br/com/eselo/controller/AvaliacaoController.java @@ -12,13 +12,19 @@ import java.io.FileReader; import java.io.FileWriter; import java.io.IOException; import java.io.InputStream; +import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.io.PrintWriter; import java.io.UnsupportedEncodingException; +import java.math.BigInteger; +import java.net.HttpURLConnection; import java.net.MalformedURLException; +import java.net.URL; +import java.nio.charset.StandardCharsets; +import java.security.MessageDigest; +import java.security.NoSuchAlgorithmException; import java.text.SimpleDateFormat; import java.util.ArrayList; -import java.util.Collection; import java.util.Collections; import java.util.Date; import java.util.List; @@ -28,11 +34,16 @@ import java.util.Properties; import javax.imageio.ImageIO; import javax.servlet.ServletContext; import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import javax.swing.text.html.HTML; import javax.ws.rs.QueryParam; -import org.hibernate.Session; +import org.apache.commons.httpclient.DefaultHttpMethodRetryHandler; +import org.apache.commons.httpclient.HttpClient; +import org.apache.commons.httpclient.HttpMethod; +import org.apache.commons.httpclient.methods.GetMethod; +import org.apache.commons.httpclient.methods.HeadMethod; +import org.apache.commons.httpclient.params.HttpConnectionParams; +import org.apache.commons.httpclient.params.HttpMethodParams; +import org.apache.http.Header; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -93,7 +104,9 @@ public class AvaliacaoController { private static final String CAMINHO_SELOS = "eselo.config.avaliacao.caminhoSelos"; private static final String URL_SERVICO = "eselo.config.avaliacao.urlServico"; - private static final String URL_ARQUIVOS_HTML = "eselo.config.avaliacao.arquivosHtml"; + private static final String URL_ARQUIVOS_HTML = "eselo.config.avaliacao.enderecoHtml"; + private static final String SALVAR_ARQUIVOS_HTML = "eselo.config.avaliacao.arquivosHtml"; + private static final String SALVAR_ARQUIVOS_JSON = "eselo.config.avaliacao.arquivosJson"; private final Properties properties = new Properties(); @@ -104,9 +117,10 @@ public class AvaliacaoController { ServletContext application, ResultadoRecomendacaoDao _daoResultadoRecomendacao, ResultadoCriterioDao _daoResultadoCriterio, - CriterioDAO _daoCriterio, RecomendacaoDAO _daoRecomendacao, SitioDAO _daoSitio)// gibran - // ResultadoCriterioDao - // _resultadoCriterioDao + CriterioDAO _daoCriterio, RecomendacaoDAO _daoRecomendacao, + SitioDAO _daoSitio)// gibran + // ResultadoCriterioDao + // _resultadoCriterioDao throws IOException { daoUrl = _daoUrl; dao = _dao; @@ -186,18 +200,24 @@ public class AvaliacaoController { double notaRecomendacao = 0.0; double somatorioNotaTeste = 0.0; double somatorioPesosCriterios = 0.0; - System.out.println(relatorioAvaliacao); + + //System.out.println(relatorioAvaliacao); + /* * Nota da Recomendação = Nota da Avaliação * Peso da Recomendação Nota * da Recomendação = 0,61785 * 3 Nota da Recomendação = 1,8535 */ double somatorioNotaRecomendacoes = 0.0; + // obter os resultados recomendacoesAvaliadas = relatorioAvaliacao.getRecomendacoes(); + + ParametroCalculo parametroCalculo = paramDao .getLastParametrosCalculoAtivo(); + if (parametroCalculo != null) { // foi colocada abaixo (Gibran) @@ -270,7 +290,7 @@ public class AvaliacaoController { } } - + criterioAvaliado.setNu_nota(notaCriterio); criterioAvaliado.setIdCriterio(criterioSalvar .getId()); @@ -279,7 +299,7 @@ public class AvaliacaoController { // criterioAvaliado.setNu_nota(notaCriterio); // lsCriterioAvaliado.add(criterioAvaliado); } - + if (somatorioPesosCriterios > 0) { notaRecomendacao = (somatorioNotaTeste / somatorioPesosCriterios) @@ -332,24 +352,29 @@ public class AvaliacaoController { * 1 + 2 + 3 Conformidade Acessibilidade = 4,25975 / 9 Conformidade * Acessibilidade = 0,4733 ==> 47,33 % */ + + + conformidadeAcessibilidade = 100 * (somatorioNotaRecomendacoes / somaPesosRecomendacoes); + conformidadeAcessibilidade = (double) new Double( conformidadeAcessibilidade * 100).intValue() / 100; - + System.out.println("erro_01"); // System.out.println("conformidadeAcessibilidade = " + // conformidadeAcessibilidade); recomendacoesCriteriosParaImprimir .add("conformidadeAcessibilidade = " + conformidadeAcessibilidade); - - for (String string : recomendacoesCriteriosParaImprimir) { - System.out.println(string); - } + System.out.println("erro_02"); + //for (String string : recomendacoesCriteriosParaImprimir) { + // System.out.println(string); + //} relatorioAvaliacao.setRecomendacoes(lsRecomendacaoAvaliada); - + if (salvarAvaliacao) { + Avaliacao novaAvalicao = salvarAvaliacao(relatorioAvaliacao, parametroCalculo, conformidadeAcessibilidade); @@ -363,19 +388,18 @@ public class AvaliacaoController { resumoAvaliacao.setDataAvaliacao(Util.dataHoraAtual()); // this.result.forwardTo(PersistenciaFileSystemController.class).salvarhtml(resumoAvaliacao, // novaAvalicao, urlComProtocolo); - - //salvarJsGrafico(url); + + // salvarJsGrafico(url); salvarhtml(resumoAvaliacao, novaAvalicao, url.getUrl(), url); } } - - gerarSelo(url, conformidadeAcessibilidade); - + + //gerarSelo(url, conformidadeAcessibilidade); + return conformidadeAcessibilidade; } - /** * Função REST que executa uma avaliação e devolve seu resultado no formato * JSON @@ -383,19 +407,23 @@ public class AvaliacaoController { * @param relatorioAvaliacao */ @Post("/calcular-nota") - public void calcularNota(RelatorioAvaliacao relatorioAvaliacao, boolean salvarAvaliacao) { - // System.out.println(relatorioAvaliacao); + public void calcularNota(RelatorioAvaliacao relatorioAvaliacao, boolean salvarAvaliacao) { + System.out.println(relatorioAvaliacao); ResultadoAvaliacao resultadoAvaliacao = new ResultadoAvaliacao(); String observacao = "Foi impossivel realizar a avaliação."; String urlComProtocolo = relatorioAvaliacao.getUrl(); + ParametroCalculo parametroCalculo = paramDao .getLastParametrosCalculoAtivo(); + if (parametroCalculo != null) { - String fullContextPath = request.getScheme() + "://" - + request.getServerName() + ":" + request.getServerPort() - + request.getContextPath(); - + //String fullContextPath = request.getScheme() + "://" + // + request.getServerName() + ":" + request.getServerPort() + // + request.getContextPath(); + String fullContextPath = "/"; + + if (relatorioAvaliacao.getRecomendacoes() != null && relatorioAvaliacao.getRecomendacoes().size() > 0 && relatorioAvaliacao.getDate() != null @@ -406,24 +434,32 @@ public class AvaliacaoController { } catch (MalformedURLException e) { e.printStackTrace(); } + Url url = daoUrl.getStringUrl(relatorioAvaliacao.getUrl()); - + if (url == null) { url = new Url(); url.setUrl(relatorioAvaliacao.getUrl()); daoUrl.save(url); } - - resultadoAvaliacao.setPath(fullContextPath + "/" + + //resultadoAvaliacao.setPath(fullContextPath + "/" + // + properties.getProperty(CAMINHO_SELOS) + "/" + // + url.getId().toString() + "/selo.png"); + + resultadoAvaliacao.setPath("/" + properties.getProperty(CAMINHO_SELOS) + "/" + url.getId().toString() + "/selo.png"); + + resultadoAvaliacao.setUrl(url.getUrl()); resultadoAvaliacao.setDataSolicitacao(relatorioAvaliacao .getDate()); - + double nota = avaliar(relatorioAvaliacao, url, urlComProtocolo, salvarAvaliacao); + if (nota > 0) { resultadoAvaliacao.setNota(nota); observacao = "Avaliação realizada com sucesso!"; @@ -444,7 +480,7 @@ public class AvaliacaoController { resultadoAvaliacao.setDataSolicitacao(relatorioAvaliacao.getDate()); resultadoAvaliacao.setDataResultado(new Date()); resultadoAvaliacao.setObservacoes(observacao); - + result.use(Results.json()).withoutRoot().from(resultadoAvaliacao) .serialize(); } @@ -537,23 +573,75 @@ public class AvaliacaoController { @Post("/avaliar-url") public void avaliarUrl(@QueryParam("url") String url) { - - /* String fullContextPath = request.getScheme() + "://" - + request.getServerName() + ":" + request.getServerPort() - + request.getContextPath();*/ + //boolean paginaAvaliada = false; + boolean urlAvaliada = false; + //String paginaAlterada = ""; String urlServico = properties.getProperty(URL_SERVICO); - - - WebChecker.PostParams postParams = WebChecker.from(urlServico).withPostRequest(); - + + WebChecker.PostParams postParams = WebChecker.from(urlServico) + .withPostRequest(); + postParams.addParam("url", url); Gson g = new GsonBuilder().create(); - - Boolean urlAvaliada = g.fromJson(postParams.execute().getContent(), + urlAvaliada = g.fromJson(postParams.execute().getContent(), Boolean.class); - + result.use(Results.xml()).from(urlAvaliada).recursive().serialize(); + + /* + + int codResponse = 0; + HttpMethod metodoRequisicaoGET = null; + HttpClient clienteHTTPJakartaCommons; + url = url.replace("https", "http"); + + System.out.println("iniciou a verificarConexao"); + codResponse = verificarConexao(url, "http.agent", "Jakarta Commons-HttpClient/3.1"); + if (codResponse != 200) { + codResponse = verificarConexao(url, "user-agent", "NewUseAgent/1.0"); + } + + + + if(codResponse == 200) + { + System.out.println("iniciou a verificarAlteracaoPagina"); + if(verificarAlteracaoPagina(url)) + { + String urlServico = properties.getProperty(URL_SERVICO); + + WebChecker.PostParams postParams = WebChecker.from(urlServico) + .withPostRequest(); + + postParams.addParam("url", url); + Gson g = new GsonBuilder().create(); + System.out.println("chamou servico ases"); + urlAvaliada = g.fromJson(postParams.execute().getContent(), + Boolean.class); + //result.use(Results.xml()).from(urlAvaliada).recursive().serialize(); + paginaAvaliada = true; + System.out.println("retornou servico ases"); + } + else + { + paginaAlterada = " Página não alterada."; + } + } + else + { + paginaAlterada = " Url inválida!"; + } + + + if(paginaAvaliada) + { + result.use(Results.xml()).from(urlAvaliada).recursive().serialize(); + } + else { + result.use(Results.xml()).from(paginaAlterada).recursive().serialize(); + }*/ + } @Get("/buscar-avaliacao") @@ -561,59 +649,65 @@ public class AvaliacaoController { public void buscarAvaliacao(@QueryParam("url") String url) throws FileNotFoundException { - String nomeArquivo = url.toLowerCase().replace("https://", "").replace("http://", "").replace("/", "").replace(".", "").replace("\"", "") + ".json"; + url = url.replace("https", "http"); + String nomeArquivo = url.toLowerCase().replace("http://", "").replace("/", "").replace(".", "") + .replace("\"", "") + + ".json"; + + File diretorioJson = new File( properties.getProperty(SALVAR_ARQUIVOS_JSON) + "/" + nomeArquivo); + + //File diretorioJson = new File(this.application.getRealPath("") + // + "/WEB-INF/arquivosJson/" + nomeArquivo); - File diretorioJson = new File(this.application.getRealPath("")+ "/WEB-INF/arquivosJson/"+ nomeArquivo); - //+ nomeArquivo); ResumoAvaliacao resumoAvaliacao = null; - + if (diretorioJson.exists()) { - + BufferedReader br = new BufferedReader(new FileReader( diretorioJson.toString())); - + Gson gson = new Gson(); - resumoAvaliacao = gson.fromJson(br, - ResumoAvaliacao.class); - } - else - { + resumoAvaliacao = gson.fromJson(br, ResumoAvaliacao.class); + } else { resumoAvaliacao = new ResumoAvaliacao(); - + resumoAvaliacao.setDataAvaliacao(Util.dataHoraAtual()); resumoAvaliacao.setUrl(url); resumoAvaliacao.setUrlResultado(""); resumoAvaliacao.setValor(null); } - - result.use(Results.json()).withoutRoot().from(resumoAvaliacao) .recursive().serialize(); } public void salvarAvaliacao(ResumoAvaliacao resumoAvaliacao) { - File diretorioJson = new File(this.application.getRealPath("")+ "/WEB-INF/arquivosJson"); - - diretorioJson.mkdir(); + //File diretorioJson = new File(this.application.getRealPath("") + // + "/WEB-INF/arquivosJson"); + //diretorioJson.mkdir(); + + File diretorioJson = new File( properties.getProperty(SALVAR_ARQUIVOS_JSON)); + + String urlArquivosHtml = properties.getProperty(URL_ARQUIVOS_HTML); - + File diretorioHtml = new File(urlArquivosHtml); - + String nomeArquivo = ""; try { - nomeArquivo = URLNormalizer.normalize(resumoAvaliacao.getUrl()).toLowerCase() - .replace("/", "").replace(".", ""); + nomeArquivo = URLNormalizer.normalize(resumoAvaliacao.getUrl()) + .toLowerCase().replace("/", "").replace(".", ""); } catch (MalformedURLException e1) { e1.printStackTrace(); } - resumoAvaliacao.setUrlResultado(urlArquivosHtml + nomeArquivo + ".html"); + resumoAvaliacao + .setUrlResultado(urlArquivosHtml + nomeArquivo + ".html"); String json; Gson gson = new Gson(); @@ -629,54 +723,72 @@ public class AvaliacaoController { gravarArq.printf(json); arq.close(); - - + } catch (IOException e) { e.printStackTrace(); } } - public void salvarhtml(ResumoAvaliacao resumoAvaliacao, Avaliacao avaliacao, String urlSemProtocolo, Url url) { - - List resultadosRecomendacao; List resultadosCriterio; Criterio criterio; Recomendacao recomendacao; - // File diretorioHtml = new File("arquivosHtml"); - File diretorioHtml = new File(this.application.getRealPath("") + "/WEB-INF/arquivosHtml"); - diretorioHtml.mkdir(); + //File diretorioHtml = new File(this.application.getRealPath("") + // + "/WEB-INF/arquivosHtml"); + //diretorioHtml.mkdir(); + + File diretorioHtml = new File(properties.getProperty(SALVAR_ARQUIVOS_HTML)); + String nomeArquivo; StringBuffer html = new StringBuffer(); - - - try { - nomeArquivo = URLNormalizer.normalize(urlSemProtocolo).toLowerCase() - .replace("/", "").replace(".", "") + nomeArquivo = URLNormalizer.normalize(urlSemProtocolo) + .toLowerCase().replace("/", "").replace(".", "") + ".txt"; + + OutputStreamWriter bufferOut = new OutputStreamWriter( + new FileOutputStream(diretorioHtml + "/" + nomeArquivo), + "UTF-8"); - - - OutputStreamWriter bufferOut = new OutputStreamWriter(new FileOutputStream(diretorioHtml + "/" + nomeArquivo),"UTF-8"); - + Double notaAvaliacao = resumoAvaliacao.getValor(); + + String webaxscore = ""; + + if (notaAvaliacao >= 95) { + webaxscore = "bom"; + } else if (notaAvaliacao >= 85 & notaAvaliacao < 95) { + webaxscore = "razoavel"; + } else if (notaAvaliacao >= 70 & notaAvaliacao < 85) { + webaxscore = "ruim"; + }else { + webaxscore = "pessimo"; + } + + + bufferOut.write(""); bufferOut.write(""); bufferOut.write(""); - bufferOut.write(""); - bufferOut.write(""); - - bufferOut.write(""); - - bufferOut.write("Painel de Acessibilidade Digital do Governo"); - bufferOut.write(""); - bufferOut.write(""); + bufferOut + .write(""); + bufferOut + .write(""); + + bufferOut + .write(""); + + bufferOut + .write("Painel de Acessibilidade Digital do Governo"); + bufferOut.write(""); + //bufferOut.write(""); + bufferOut + .write(""); bufferOut.write(""); bufferOut.write(""); @@ -684,28 +796,31 @@ public class AvaliacaoController { bufferOut.write("
"); bufferOut.write("
"); bufferOut.write(" "); - - + bufferOut.write("

"); + bufferOut.write("
"); - bufferOut.write("

"); + bufferOut.write("

"); bufferOut.write(" Painel de Acessibilidade Digital do Governo "); bufferOut.write("

"); bufferOut.write("
"); - + bufferOut.write(""); @@ -713,69 +828,132 @@ public class AvaliacaoController { bufferOut.write("
"); bufferOut.write(""); bufferOut.write("
"); - bufferOut.write("Início do conteúdo"); + bufferOut + .write("Início do conteúdo"); + + bufferOut.write("
"); bufferOut.write("
"); bufferOut.write(" "); bufferOut.write("
"); + + bufferOut.write("
"); - bufferOut.write("
"); + //bufferOut.write("
"); - bufferOut.write("
"); + bufferOut.write("
"); - bufferOut.write("

Gráfico com as notas das últimas avaliações ordenada da mais antiga para a mais atual, limitado até quatro avaliações.

"); - List lsAvaliacao = dao.getTresUltimasAvaliacoesByURL(url); + bufferOut.write("
"); + bufferOut.write("
Porcentagem"); + bufferOut.write(" ASES"); + bufferOut.write(" " + notaAvaliacao +"%"); + bufferOut.write("
"); + bufferOut.write("
"); - int i = 5; - bufferOut.write("
    "); + //bufferOut.write("
    "); - List avaliacoesOrdenada = new ArrayList(); + bufferOut.write("
    "); + bufferOut.write("
    "); + bufferOut.write("
      "); + bufferOut.write("
    • \"farol
    • "); + bufferOut.write("
    • \"farol
    • "); + bufferOut.write("
    • \"farol
    • "); + bufferOut.write("
    • \"farol
    • "); + bufferOut.write("
    "); + bufferOut.write("
    "); + + bufferOut.write("

"); + + //bufferOut.write("
"); + /*bufferOut.write("
"); + + + bufferOut.write("
"); + bufferOut.write("
"); + bufferOut.write("
Porcentagem"); + bufferOut.write(" ASES"); + bufferOut.write(" " + notaAvaliacao +"%"); + bufferOut.write("
"); + bufferOut.write("
"); + + bufferOut.write("
"); + + + + bufferOut.write("
");*/ + + + bufferOut.write("
"); + + bufferOut + .write("

Gráfico com as notas das últimas avaliações ordenada da mais antiga para a mais atual, limitado até quatro avaliações.

"); + List lsAvaliacao = dao + .getTresUltimasAvaliacoesByURL(url); + + int i = 5; + bufferOut.write("
    "); + + List avaliacoesOrdenada = new ArrayList(); + for (Avaliacao avaliacao2 : lsAvaliacao) { - i--; + i--; avaliacoesOrdenada.add(avaliacao2); - if(i <= 1) - { + if (i <= 1) { break; } } Collections.sort(avaliacoesOrdenada); - + i = 0; for (Avaliacao avaliacaoOrdenada : avaliacoesOrdenada) { i++; - bufferOut.write("
  • Nota " + i + ": " + avaliacaoOrdenada.getNota() + "Data da avaliação:" + avaliacaoOrdenada.getDataAvaliacao() + "
  • "); - + bufferOut + .write("
  • Nota " + i + ": " + avaliacaoOrdenada.getNota() + + "Data da avaliação:" + + avaliacaoOrdenada.getDataAvaliacao() + + "
  • "); + } - + Long idSitio = avaliacao.getUrl().getIdSitio(); - - Sitio sitio = daoSitio.getSitioById(idSitio); - - String nomeOrgao = (sitio != null) ? sitio.getDominio().getOrgao().getNomeOrgao():""; - + + Sitio sitio = daoSitio.getSitioById(idSitio); + + String nomeOrgao = (sitio != null) ? sitio.getDominio().getOrgao() + .getNomeOrgao() : ""; + bufferOut.write("
"); - bufferOut.write(""); + bufferOut.write(""); bufferOut.write("
"); bufferOut.write(" "); bufferOut.write("
"); bufferOut.write("
"); bufferOut.write("
"); - bufferOut.write("
"); - - String dataFormatada = avaliacao.getDataAvaliacao().toString(); + bufferOut.write("
"); - bufferOut.write("
"); bufferOut.write("
"); - bufferOut.write(""); - bufferOut.write(""); - bufferOut.write(""); - bufferOut.write(""); - bufferOut.write(""); + + bufferOut.write(""); + //bufferOut.write(""); + + bufferOut + .write(""); + + + bufferOut.write(""); + //bufferOut.write(""); + + + + + + bufferOut + .write(""); bufferOut.write(""); bufferOut.write(""); - + bufferOut.close(); - + if (diretorioHtml.exists()) { salvarAvaliacao(resumoAvaliacao); } @@ -876,7 +1077,125 @@ public class AvaliacaoController { } catch (IOException e) { e.printStackTrace(); } + + } + + private boolean verificarAlteracaoPagina(String url) { + + boolean paginaAlterada = false; + System.out.println("iniciou a verificacao"); + //WebChecker pagina = WebChecker.from(url).withGetRequest().execute(); + String html = "1234";//pagina.getContent().toLowerCase(); + MessageDigest digest; + byte[] secured = null; + + System.out.println("iniciou a criacao hash"); + try { + digest = MessageDigest.getInstance("MD5"); + digest.reset(); + secured = digest.digest(html.getBytes()); + + } catch (NoSuchAlgorithmException e) { + e.printStackTrace(); + } + System.out.println("terminou criacao hash"); + + Url urlCompleta = null; + try { + urlCompleta = daoUrl.getStringUrl(URLNormalizer.normalize(url)); + + System.out.println("buscou urlCompleta"); + } catch (MalformedURLException e) { + e.printStackTrace(); + } + + if(urlCompleta != null) + { + if (urlCompleta.getCodHash() == null || !MessageDigest.isEqual(urlCompleta.getCodHash(), secured)) + { + + try { + urlCompleta.setCodHash(secured); + daoUrl.update(urlCompleta); + paginaAlterada = true; + } catch (Exception e) { + e.getCause(); + } + + + + + } + } + else + { + paginaAlterada = true; + } + return paginaAlterada; } + private Integer verificarConexao(String href, String usuario, String agente) { + + System.setProperty("jsse.enableSNIExtension", "false"); + HttpMethod metodoRequisicao = null; + HttpClient clienteHTTPJakartaCommons; + URL UrlConvertida; + int codResponse = -1; + + try { + + String[] test = href.split("\\../"); + String newurl = ""; + for (String tes : test) + newurl = newurl + tes.trim(); + + newurl = newurl.replace(" ", "%20"); + + UrlConvertida = new URL(newurl); + + clienteHTTPJakartaCommons = new HttpClient(); + clienteHTTPJakartaCommons.getParams().setParameter(HttpMethodParams.RETRY_HANDLER, + new DefaultHttpMethodRetryHandler(3, false)); + clienteHTTPJakartaCommons.getParams().setParameter("http.protocol.allow-circular-redirects", + true); + clienteHTTPJakartaCommons.getParams().setParameter(HttpConnectionParams.CONNECTION_TIMEOUT, + new Integer(2000)); + + + metodoRequisicao = new HeadMethod(UrlConvertida.toExternalForm()); + + metodoRequisicao.setRequestHeader(usuario, agente); + + codResponse = clienteHTTPJakartaCommons.executeMethod(metodoRequisicao); + + if(codResponse >= 400 && codResponse < 500) + { + metodoRequisicao = new GetMethod(UrlConvertida.toExternalForm()); + codResponse = clienteHTTPJakartaCommons.executeMethod(metodoRequisicao); + } + + } catch (MalformedURLException e) { + e.printStackTrace(); + return -1; + + } catch (IOException e) { + e.printStackTrace(); + return -1; + + } catch (IllegalArgumentException e) { + e.printStackTrace(); + return -1; + + } finally { + + if (metodoRequisicao != null) { + metodoRequisicao.releaseConnection(); + } + + } + return codResponse; + + } + } diff --git a/Desenvolvimento/Codificacao/e-Selo/src/main/java/br/com/eselo/controller/PainelAcessibilidadeController.java b/Desenvolvimento/Codificacao/e-Selo/src/main/java/br/com/eselo/controller/PainelAcessibilidadeController.java index 66a198c..6b1d9b8 100644 --- a/Desenvolvimento/Codificacao/e-Selo/src/main/java/br/com/eselo/controller/PainelAcessibilidadeController.java +++ b/Desenvolvimento/Codificacao/e-Selo/src/main/java/br/com/eselo/controller/PainelAcessibilidadeController.java @@ -1,34 +1,77 @@ package br.com.eselo.controller; +import java.net.MalformedURLException; +import java.util.ArrayList; +import java.util.List; + +import javax.ws.rs.QueryParam; + import br.com.caelum.vraptor.Get; import br.com.caelum.vraptor.Post; import br.com.caelum.vraptor.Resource; import br.com.caelum.vraptor.Result; import br.com.caelum.vraptor.Validator; +import br.com.eselo.component.URLNormalizer; +import br.com.eselo.dao.UrlDAO; +import br.com.eselo.model.Url; @Resource public class PainelAcessibilidadeController { private Result result; private Validator validator; + private final UrlDAO daoUrl; - public PainelAcessibilidadeController(Result result, Validator validator){ + public PainelAcessibilidadeController(Result result, Validator validator, UrlDAO _dao){ this.result = result; this.validator = validator; + this.daoUrl = _dao; } @Get("/painelAcessibilidade") - public void painelAcessibilidade() { + public void painelAcessibilidade(@QueryParam("url") String url,@QueryParam("sitio") String sitio,@QueryParam("id") String id) { String teste = ""; + String te = "Objeto montado"; + Url url1 = new Url(); + Url url2 = null; + //try { + // url = new Url();//daoUrl. getStringUrl(URLNormalizer.normalize("http://asesweb.governoeletronico.gov.br/ases/")); + //} catch (MalformedURLException e) { + // TODO Auto-generated catch block + // e.printStackTrace(); + //} + + try { + + System.out.println("montagem do objeto"); + url1.setId(Long.parseLong(id)); + url1.setUrl(URLNormalizer.normalize(url)); + url1.setIdSitio(Long.parseLong(sitio)); + url1.setCodHash(te.getBytes()); + System.out.println("Objeto montado"); + System.out.println("Update do objeto"); + daoUrl.update(url1); + System.out.println("Objeto atualizado no banco"); + } catch (Exception e) { + e.printStackTrace(); + e.getCause(); + } + + + + + try { + url2 = daoUrl. getStringUrl(URLNormalizer.normalize(url)); + + result.include("url", url2); + } catch (MalformedURLException e) { + e.printStackTrace(); + } + + } - @Post("/painelAcessibilidade") - public void painelAcessibilidade(String idOrgao) { - - String teste = ""; - //this.validator = validate.getMessage(); - //this.validator.onErrorUsePageOf(this).painelAcessibilidade(); - } + } diff --git a/Desenvolvimento/Codificacao/e-Selo/src/main/java/br/com/eselo/controller/arquivosHtmlController.java b/Desenvolvimento/Codificacao/e-Selo/src/main/java/br/com/eselo/controller/arquivosHtmlController.java index 92f1bb2..b77e3af 100644 --- a/Desenvolvimento/Codificacao/e-Selo/src/main/java/br/com/eselo/controller/arquivosHtmlController.java +++ b/Desenvolvimento/Codificacao/e-Selo/src/main/java/br/com/eselo/controller/arquivosHtmlController.java @@ -6,38 +6,58 @@ import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileReader; import java.io.IOException; +import java.io.InputStream; import java.io.InputStreamReader; +import java.util.Properties; import javax.servlet.ServletContext; import javax.swing.text.html.HTML; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + import br.com.caelum.vraptor.Get; import br.com.caelum.vraptor.Resource; import br.com.caelum.vraptor.Result; +import br.com.eselo.component.Mailer; import br.com.eselo.model.ResumoAvaliacao; @Resource public class arquivosHtmlController { + private static final Logger LOGGER = LoggerFactory + .getLogger(AvaliacaoController.class); + private ServletContext application; private Result result; - - + private static final String BUSCAR_ARQUIVOS_HTML = "eselo.config.avaliacao.arquivosHtml"; + private static Properties properties = new Properties(); - public arquivosHtmlController(ServletContext application, Result result) { + public arquivosHtmlController(ServletContext application, Result result) throws IOException { super(); this.application = application; this.result = result; - + String fileName = "config.properties"; + InputStream stream = Mailer.class.getResourceAsStream("/" + fileName); + Properties propertiesFile = new Properties(); + + if (stream != null) { + propertiesFile.load(stream); + this.properties.putAll(propertiesFile); + } else { + LOGGER.warn("Could not find the file '{}' to load.", fileName); + } } @Get("/arquivosHtml/{nomeArquivo}") public void arquivosHtml(String nomeArquivo) { - File diretorioHtml = new File(this.application.getRealPath("")+ "/WEB-INF/arquivosHtml/"+ nomeArquivo.replace(".html",".txt")); - //+ nomeArquivo); + //File diretorioHtml = new File(this.application.getRealPath("")+ "/WEB-INF/arquivosHtml/"+ nomeArquivo.replace(".html",".txt")); + + + File diretorioHtml = new File(properties.getProperty(BUSCAR_ARQUIVOS_HTML) + "/" + nomeArquivo.replace(".html",".txt")); StringBuilder html = new StringBuilder(); try { BufferedReader myBuffer = new BufferedReader(new InputStreamReader(new FileInputStream(diretorioHtml), "UTF-8")); diff --git a/Desenvolvimento/Codificacao/e-Selo/src/main/java/br/com/eselo/dao/GenericDAO.java b/Desenvolvimento/Codificacao/e-Selo/src/main/java/br/com/eselo/dao/GenericDAO.java index 8bc6fdb..c82a6e7 100644 --- a/Desenvolvimento/Codificacao/e-Selo/src/main/java/br/com/eselo/dao/GenericDAO.java +++ b/Desenvolvimento/Codificacao/e-Selo/src/main/java/br/com/eselo/dao/GenericDAO.java @@ -87,6 +87,8 @@ public abstract class GenericDAO { this.session.update(entity); this.session.flush(); } catch (HibernateException e) { + System.out.println("erro ao atualizar"); + System.out.println(e.getMessage()); logger.debug(e.getMessage()); throw e; } diff --git a/Desenvolvimento/Codificacao/e-Selo/src/main/java/br/com/eselo/model/Url.java b/Desenvolvimento/Codificacao/e-Selo/src/main/java/br/com/eselo/model/Url.java index 6be680b..db47ffc 100644 --- a/Desenvolvimento/Codificacao/e-Selo/src/main/java/br/com/eselo/model/Url.java +++ b/Desenvolvimento/Codificacao/e-Selo/src/main/java/br/com/eselo/model/Url.java @@ -1,5 +1,6 @@ package br.com.eselo.model; +import java.math.BigInteger; import java.util.ArrayList; import java.util.List; @@ -41,6 +42,10 @@ public class Url { @Column(name="id_sitio", nullable = true) private Long idSitio; + @Column(name="cod_hash", nullable = true) + private byte[] codHash; + + public Long getId() { return id; } @@ -65,4 +70,18 @@ public class Url { this.idSitio = idSitio; } + public byte[] getCodHash() { + return codHash; + } + + public void setCodHash(byte[] codHash) { + this.codHash = codHash; + } + + + + + + + } diff --git a/Desenvolvimento/Codificacao/e-Selo/src/main/resources/config.properties b/Desenvolvimento/Codificacao/e-Selo/src/main/resources/config.properties index 29668f8..9b7678e 100644 --- a/Desenvolvimento/Codificacao/e-Selo/src/main/resources/config.properties +++ b/Desenvolvimento/Codificacao/e-Selo/src/main/resources/config.properties @@ -1,3 +1,13 @@ eselo.config.avaliacao.caminhoSelos = imgSelo +eselo.config.avaliacao.urlServico =http://asesweb-prd.brazilsouth.cloudapp.azure.com/servico-avaliacao-acessibilidade-salvando +#eselo.config.avaliacao.urlServico = http://189.9.137.162:8080/ases/servico-avaliacao-acessibilidade-salvando #eselo.config.avaliacao.urlServico = http://localhost:18080/ases/servico-avaliacao-acessibilidade-salvando -eselo.config.avaliacao.urlServico = http://189.9.137.162:8080/ases/servico-avaliacao-acessibilidade-salvando + + +eselo.config.avaliacao.arquivosHtml=/var/www/arquivo/painel/html +eselo.config.avaliacao.arquivosJson=/var/www/arquivo/painel/json + + +#eselo.config.avaliacao.enderecoHtml=http://localhost:18080/eselo/arquivosHtml/ +#eselo.config.avaliacao.enderecoHtml=http://189.9.137.162:8080/eselo/arquivosHtml/ +eselo.config.avaliacao.enderecoHtml=http://eselo-prd.brazilsouth.cloudapp.azure.com/arquivosHtml \ No newline at end of file diff --git a/Desenvolvimento/Codificacao/e-Selo/src/main/resources/hibernate.cfg.xml b/Desenvolvimento/Codificacao/e-Selo/src/main/resources/hibernate.cfg.xml index 37f659e..5af3cb3 100644 --- a/Desenvolvimento/Codificacao/e-Selo/src/main/resources/hibernate.cfg.xml +++ b/Desenvolvimento/Codificacao/e-Selo/src/main/resources/hibernate.cfg.xml @@ -7,17 +7,17 @@ org.hibernate.dialect.PostgreSQLDialect - jdbc:postgresql://localhost:5432/eselo + jdbc:postgresql://database:5432/eselo org.postgresql.Driver postgres - postgres + dgeSLTIcgpge2015 utf8 utf8 true - update + true - true + false org.hibernate.cache.HashtableCacheProvider @@ -33,6 +33,10 @@ + + + + -- libgit2 0.21.2