List of usage examples for org.jsoup.nodes Document toString
public String toString()
From source file:org.tinymediamanager.scraper.zelluloid.ZelluloidMetadataProvider.java
@Override public MediaMetadata getMetadata(MediaScrapeOptions options) throws Exception { LOGGER.debug("getMetadata() " + options.toString()); // we can only work further if we got a search result on zelluloid.de if (options.getResult() == null) { throw new Exception("Scrape with Zelluloid.de without prior search is not supported"); }/*from ww w. jav a2 s. c o m*/ MediaMetadata md = new MediaMetadata(providerInfo.getId()); // generic Elements used all over Elements el = null; // preset values from searchresult (if we have them) md.storeMetadata(MediaMetadata.ORIGINAL_TITLE, Utils.removeSortableName(options.getResult().getOriginalTitle())); md.storeMetadata(MediaMetadata.TITLE, Utils.removeSortableName(options.getResult().getTitle())); md.storeMetadata(MediaMetadata.YEAR, options.getResult().getYear()); md.storeMetadata(MediaMetadata.ORIGINAL_TITLE, options.getResult().getOriginalTitle()); String id = ""; if (StringUtils.isEmpty(options.getResult().getId())) { id = StrgUtils.substr(options.getResult().getUrl(), "id=(.*?)"); } else { id = options.getResult().getId(); } String detailurl = options.getResult().getUrl(); if (StringUtils.isEmpty(detailurl)) { detailurl = BASE_URL + "/filme/index.php3?id=" + id; } Url url; try { LOGGER.debug("get details page"); url = new CachedUrl(detailurl); InputStream in = url.getInputStream(); Document doc = Jsoup.parse(in, PAGE_ENCODING, ""); in.close(); // parse plot String plot = doc.getElementsByAttributeValue("class", "bigtext").text(); md.storeMetadata(MediaMetadata.PLOT, plot); md.storeMetadata(MediaMetadata.TAGLINE, plot.length() > 150 ? plot.substring(0, 150) : plot); // parse poster el = doc.getElementsByAttributeValueStarting("src", "/images/poster"); if (el.size() == 1) { md.storeMetadata(MediaMetadata.POSTER_URL, BASE_URL + el.get(0).attr("src")); } // parse year if (StringUtils.isEmpty(md.getStringValue(MediaMetadata.YEAR))) { el = doc.getElementsByAttributeValueContaining("href", "az.php3?j="); if (el.size() == 1) { md.storeMetadata(MediaMetadata.YEAR, el.get(0).text()); } } // parse cinema release el = doc.getElementsByAttributeValueContaining("href", "?v=w"); if (el.size() > 0) { try { SimpleDateFormat sdf = new SimpleDateFormat("dd.MM.yyyy"); Date d = sdf.parse(el.get(0).text()); sdf = new SimpleDateFormat("yyyy-MM-dd"); md.storeMetadata(MediaMetadata.RELEASE_DATE, sdf.format(d)); } catch (Exception e) { LOGGER.warn("cannot parse cinema release date: " + el.get(0).text()); } } // parse original title if (StringUtils.isEmpty(md.getStringValue(MediaMetadata.ORIGINAL_TITLE))) { md.storeMetadata(MediaMetadata.ORIGINAL_TITLE, StrgUtils.substr(doc.toString(), "Originaltitel: (.*?)\\<")); } if (StringUtils.isEmpty(md.getStringValue(MediaMetadata.ORIGINAL_TITLE))) { md.storeMetadata(MediaMetadata.ORIGINAL_TITLE, md.getStringValue(MediaMetadata.TITLE)); } // parse runtime String rt = (StrgUtils.substr(doc.toString(), "ca. (.*?) min")); if (!rt.isEmpty()) { try { md.storeMetadata(MediaMetadata.RUNTIME, Integer.valueOf(rt)); } catch (Exception e2) { LOGGER.warn("cannot convert runtime: " + rt); } } // parse genres el = doc.getElementsByAttributeValueContaining("href", "az.php3?g="); for (Element g : el) { String gid = g.attr("href").substring(g.attr("href").lastIndexOf('=') + 1); md.addGenre(getTmmGenre(gid)); } // parse cert // FSK: ab 12, $230 Mio. Budget String fsk = StrgUtils.substr(doc.toString(), "FSK: (.*?)[,<]"); if (!fsk.isEmpty()) { md.addCertification(Certification.findCertification(fsk)); } // parse rating Elements ratings = doc.getElementsByAttributeValue("class", "ratingBarTable"); if (ratings.size() == 2) { // get user rating Element e = ratings.get(1); // <div>87%</div> String r = e.getElementsByTag("div").text().replace("%", ""); try { md.storeMetadata(MediaMetadata.RATING, Double.valueOf(r) / 10); // only 0-10 } catch (Exception e2) { LOGGER.warn("cannot convert rating: " + r); } } // details page doc = null; String detailsUrl = BASE_URL + "/filme/details.php3?id=" + id; try { url = new CachedUrl(detailsUrl); in = url.getInputStream(); doc = Jsoup.parse(in, PAGE_ENCODING, ""); in.close(); } catch (Exception e) { LOGGER.error("failed to get details: " + e.getMessage()); // clear cache CachedUrl.removeCachedFileForUrl(detailsUrl); } if (doc != null) { Element tab = doc.getElementById("ccdetails"); int header = 0; String lastRole = ""; for (Element tr : tab.getElementsByTag("tr")) { if (tr.toString().contains("dyngfx")) { // header gfx if (tr.toString().contains("Besetzung")) { header = 1; } else if (tr.toString().contains("Crew")) { header = 2; } else if (tr.toString().contains("Produktion")) { header = 3; } else if (tr.toString().contains("Verleih")) { header = 4; } else if (tr.toString().contains("Alternativtitel")) { header = 5; } continue; } else { // no header gfx, so data MediaCastMember mcm = new MediaCastMember(); el = tr.getElementsByTag("td"); if (header == 1) { // actors if (el.size() == 2) { mcm.setCharacter(el.get(0).text()); mcm.setName(el.get(1).getElementsByTag("a").text()); mcm.setId(StrgUtils.substr(el.get(1).getElementsByTag("a").attr("href"), "id=(\\d+)")); mcm.setType(MediaCastMember.CastType.ACTOR); // System.out.println("Cast: " + mcm.getCharacter() + " - " + // mcm.getName()); md.addCastMember(mcm); // TODO: parse actor detail pages :/ } } else if (header == 2) { // crew if (el.size() == 2) { String crewrole = el.get(0).html().trim(); mcm.setName(el.get(1).getElementsByTag("a").text()); if (crewrole.equals(" ")) { mcm.setPart(lastRole); } else { mcm.setPart(crewrole); lastRole = crewrole; } if (crewrole.equals("Regie")) { mcm.setType(MediaCastMember.CastType.DIRECTOR); } else if (crewrole.equals("Drehbuch")) { mcm.setType(MediaCastMember.CastType.WRITER); } else { mcm.setType(MediaCastMember.CastType.OTHER); } mcm.setId(StrgUtils.substr(el.get(1).getElementsByTag("a").attr("href"), "id=(\\d+)")); // System.out.println("Crew: " + mcm.getPart() + " - " + // mcm.getName()); md.addCastMember(mcm); } } else if (header == 3) { // production md.storeMetadata(MediaMetadata.PRODUCTION_COMPANY, el.get(0).text()); } } } } // get links page doc = null; String linksUrl = BASE_URL + "/filme/links.php3?id=" + id; try { url = new CachedUrl(linksUrl); in = url.getInputStream(); doc = Jsoup.parse(in, PAGE_ENCODING, ""); in.close(); } catch (Exception e) { LOGGER.error("failed to get links page: " + e.getMessage()); // clear cache CachedUrl.removeCachedFileForUrl(linksUrl); } if (doc != null) { el = doc.getElementsByAttributeValueContaining("href", "german.imdb.com"); if (el != null && el.size() > 0) { String imdb = StrgUtils.substr(el.get(0).attr("href"), "(tt\\d{7})"); if (imdb.isEmpty()) { imdb = "tt" + StrgUtils.substr(el.get(0).attr("href"), "\\?(\\d+)"); } md.setId(MediaMetadata.IMDBID, imdb); } } } catch (Exception e) { LOGGER.error("Error parsing " + options.getResult().getUrl()); // clear cache CachedUrl.removeCachedFileForUrl(detailurl); throw e; } return md; }
From source file:org.zaproxy.zap.extension.cmss.FastFingerprinter.java
/** * I think that should be modular too// w ww . j av a2s. c om * * @param url * @return */ public static ArrayList<String> JoomlaFastFingerprint(URL url) { // on se base sur ODZscanner WebPage wp = null; ArrayList<String> result = new ArrayList<String>(); org.jsoup.nodes.Document doc = null; String dist = ""; String htacc = ""; String rdm = ""; String doc2 = ""; try { wp = new WebPage(url); doc = wp.getDocument(); } catch (Exception e) { e.printStackTrace(); } try { doc2 = IOUtils.toString(CMSSUtils.getFileFromUrl(new URL(url.toString() + "/index.php?option=com_esi")), "UTF-8"); } catch (Exception e) { } try { rdm = IOUtils.toString(CMSSUtils.getFileFromUrl(new URL(url.toString() + "/README.txt")), "UTF-8"); } catch (Exception e) { } try { htacc = IOUtils.toString(CMSSUtils.getFileFromUrl(new URL(url.toString() + "/htaccess.txt")), "UTF-8"); } catch (Exception e) { } try { dist = IOUtils.toString(CMSSUtils.getFileFromUrl(new URL(url.toString() + "/configuration.php-dist")), "UTF-8"); } catch (Exception e) { } Pattern p, p2; p = Pattern.compile("<\\/html> <!-- \\d{1,30} -->"); p2 = Pattern.compile("The page you are trying to access does not exist"); try { Matcher m = p.matcher(doc.toString()), m2 = p2.matcher(doc2.toString()); if (m.find() || m2.find() || WebAppGuesser.checkIfExist(new URL(url.toString() + "/language/english.xml")) || WebAppGuesser.checkIfExist( new URL(url.toString() + "/administrator/templates/joomla_admin/images/security.png"))) result.add("1.0.x"); } catch (Exception e) { } p = Pattern.compile(" Joomla! 1.5 - Open Source Content Management"); p2 = Pattern.compile("404- Component not found"); try { Matcher m = p.matcher(doc.toString()); Matcher m2 = p2.matcher(doc2); if (m.find() || m2.find() || WebAppGuesser.checkIfExist( new URL(url.toString() + "/administrator/templates/khepri/images/j_login_lock.jpg")) || WebAppGuesser.checkIfExist( new URL(url.toString() + "/administrator/templates/khepri/images/j_button1_next.png"))) result.add("1.5.x"); } catch (Exception e) { } p = Pattern.compile("package to version 3.0.x"); try { Matcher m = p.matcher(rdm.toString()); if (m.find() || WebAppGuesser.checkIfExist( new URL(url.toString() + "/administrator/templates/isis/img/glyphicons-halflings.png"))) result.add("3.0.x"); } catch (Exception e) { } try { if (searchByRegex("47 2005-09-15 02:55:27Z rhuk", htacc.toString())) result.add("[1.0.0 - 1.0.2]"); } catch (Exception e) { } try { if (searchByRegex("423 2005-10-09 18:23:50Z stingrey", htacc.toString())) result.add("1.0.3"); } catch (Exception e) { } try { if (searchByRegex("1005 2005-11-13 17:33:59Z stingrey", htacc.toString())) result.add("[1.0.4 - 1.0.5]"); } catch (Exception e) { } try { if (searchByRegex("1570 2005-12-29 05:53:33Z eddieajau", htacc.toString())) result.add("[1.0.6 - 1.0.7]"); } catch (Exception e) { } try { if (searchByRegex("2368 2006-02-14 17:40:02Z stingrey", htacc.toString())) result.add("[1.0.8 - 1.0.9]"); } catch (Exception e) { } try { if (searchByRegex("44085 2006-06-21 16:03:54Z stingrey7 2005-09-15 02:55:27Z rhuk", htacc.toString())) result.add("1.0.10"); } catch (Exception e) { } try { if (searchByRegex("4756 2006-08-25 16:07:11Z stingrey", htacc.toString())) result.add("1.0.11"); } catch (Exception e) { } try { if (searchByRegex("5973 2006-12-11 01:26:33Z robs", htacc.toString())) result.add("1.0.12"); } catch (Exception e) { } try { if (searchByRegex("5975 2006-12-11 01:26:33Z robs", htacc.toString())) result.add("[1.0.13 - 1.0.15]"); } catch (Exception e) { } try { if (searchByRegex("47 2005-09-15 02:55:27Z rhuk", dist.toString())) result.add("1.0.0"); } catch (Exception e) { } try { if (searchByRegex("217 2005-09-21 15:15:58Z stingrey", dist.toString())) result.add("[1.0.1 - 1.0.2]"); } catch (Exception e) { } try { if (searchByRegex("506 2005-10-13 05:49:24Z stingrey", dist.toString())) result.add("[1.0.3 - 1.0.7]"); } catch (Exception e) { } try { if (searchByRegex("2622 2006-02-26 04:16:09Z stingrey", dist.toString())) result.add("1.0.8"); } catch (Exception e) { } try { if (searchByRegex("3754 2006-05-31 12:08:37Z stingrey", dist.toString())) result.add("[1.0.9 - 1.0.10]"); } catch (Exception e) { e.printStackTrace(); } return result; }
From source file:picks.PickSite.java
private void getPage(int page) throws IOException { String urls = "http://huaban.com/search/?q=app%20%E5%BC%95%E5%AF%BC%E9%A1%B5&hyubwukg&page=" + page + "&per_page=20&wfl=1"; Document html = null; html = Jsoup.connect(urls).header("User-Agent", "Mozilla/5.0 (Windows NT 5.1) AppleWebKit/536.5 (KHTML, like Gecko) Chrome/19.0.1084.52 Safari/536.5") .get();/* w w w . ja v a 2 s .com*/ String htmls = html.toString(); int start = htmls.indexOf("app.page[\"pins\"]"); int end = htmls.indexOf("app.page[\"category\"]"); String jstr = htmls.substring(start + "app.page[\"pins\"] = ".length(), end); try { JSONArray arr = new JSONArray(jstr); for (int i = 0; i < arr.length(); i++) { JSONObject obj = (JSONObject) arr.get(i); String pin_id = obj.getString("pin_id"); String app_name = obj.getString("raw_text"); String link = obj.getString("link"); html = Jsoup .connect("http://218.244.156.133/foreplay/index.php?r=api/addAppSite&id=" + pin_id + "&name=" + app_name + "&url=" + link) .header("User-Agent", "Mozilla/5.0 (Windows NT 5.1) AppleWebKit/536.5 (KHTML, like Gecko) Chrome/19.0.1084.52 Safari/536.5") .get(); System.out.println("http://218.244.156.133/foreplay/index.php?r=api/addAppSite&id=" + pin_id + "&name=" + app_name + "&url=" + link + html.toString()); } } catch (JSONException ex) { Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex); } }
From source file:poe.trade.assist.SearchForm.java
private String removeAllExceptSearchForm(String html) { String htmlDirectory = htmlDirectory(); Document doc = Jsoup.parse(html); // Remove stuff outside of id="main" // doc.body().children().stream().filter(e -> !"main".equalsIgnoreCase(e.id())).forEach(e -> e.remove()); Element head = doc.head();//from w w w. j ava 2 s. c o m // Replace everthing in the <head> head.children().stream().forEach(e -> e.remove()); head.appendElement("meta").attr("charset", "utf-8"); head.appendElement("meta").attr("name", "viewport").attr("content", "width=device-width"); head.appendElement("title").text("poe.trade.assist"); head.appendElement("script").attr("type", "text/javascript").attr("src", htmlDirectory + "packed.js"); head.appendElement("link").attr("rel", "stylesheet").attr("href", htmlDirectory + "packed_dark.css"); // Show search form Optional.ofNullable(doc.getElementById("search-form")).ifPresent(e -> e.attr("style", "")); Optional.ofNullable(doc.getElementById("search")) .ifPresent(e -> e.attr("action", "http://poe.trade/search")); // // Element mainElement = doc.getElementById("main"); // Element topDivContainer = mainElement.child(0); // // // Remove everthing that is not id="content" or h2 // topDivContainer.children().stream() // .filter(e -> !"content".equalsIgnoreCase(e.id())) // .filter(e -> !e.tag().getName().equalsIgnoreCase("h2")) // .forEach(e -> e.remove()); // // // Clean up stuff inside id="content" // // // Remove "Show search form", "search/import" // Optional<Element> searchFormElem = doc.getElementsByTag("a").stream().filter(e -> e.hasClass("button") && e.hasClass("secondary") && e.hasClass("expand")).findFirst(); // searchFormElem.ifPresent(e -> e.remove()); // // Optional<Element> searchOrImportDiv = doc.getElementsByTag("div").stream().filter(e -> e.hasClass("row") && e.hasClass("form-choose-action")).findFirst(); // searchOrImportDiv.ifPresent(e -> e.remove()); // // // Remove search results Elements searchResultBlocks = doc.getElementsByClass("search-results-block"); if (searchResultBlocks.size() > 0) { searchResultBlocks.get(0).remove(); } // append assist as the last element in body // doc.body().appendElement("script").attr("type", "text/javascript").attr("src", htmlDirectory + "assist.js"); String cleanHtml = doc.toString(); return cleanHtml; }
From source file:poe.trade.assist.SearchView.java
private String addHeadElements(String html) { String htmlDirectory = htmlDirectory(); Document doc = Jsoup.parse(html); Element head = doc.head();//from w w w. j a v a2 s . c o m // Replace everthing in the <head> head.children().stream().forEach(e -> e.remove()); head.appendElement("meta").attr("charset", "utf-8"); head.appendElement("meta").attr("name", "viewport").attr("content", "width=device-width"); head.appendElement("title").text("poe.trade.assist"); head.appendElement("script").attr("type", "text/javascript").attr("src", htmlDirectory + "packed.js"); head.appendElement("link").attr("rel", "stylesheet").attr("href", htmlDirectory + "packed_dark.css"); doc.body().appendElement("script").attr("type", "text/javascript").attr("src", htmlDirectory + "assist.js"); String cleanHTML = doc.toString(); // try { // FileUtils.writeStringToFile(new File("test"), cleanHTML); // } catch (IOException e1) { // // TODO Auto-generated catch block // e1.printStackTrace(); // } return cleanHTML; }
From source file:revaligner.service.FileAligner.java
public void exportHtmlLogFileForFinalReview() throws Exception { System.out.println("creating log file for final review...."); List<String> newtrgs = gatherNewTargetsFromTranslatedTxlf(); List<List<String>> notes = gatherNotesFromTranslatedTxlf(); org.jsoup.nodes.Document doc = Jsoup.parse(new File(this.htmlreportfortranslation_temp), "UTF-8", ""); org.jsoup.nodes.Element ttl = doc.select("ttl").first(); for (org.jsoup.nodes.Element radio : doc.select("input[type=\"radio\"]")) { if (radio.hasAttr("disabled")) { radio.removeAttr("disabled"); }// w w w . ja v a 2s . c om } for (org.jsoup.nodes.Element radiotext : doc.select(".filter")) { radiotext.attr("style", "#23407B;"); } ttl.text("RA Report - For Final Reivew"); Elements rows = doc.select("tr"); int newtrgcnt = 0; for (int i = 3; i < rows.size(); i++) { org.jsoup.nodes.Element row = (org.jsoup.nodes.Element) rows.get(i); org.jsoup.nodes.Element trg = row.select("td.trg").first(); org.jsoup.nodes.Element cmt = row.select("th.cmt").first(); String orgtrgtext = trg.text().replace(" ", "<br>").replace("", " "); String newtrgtext = ""; //System.out.println(newtrgs.get(newtrgcnt)); if (!row.attr("id").isEmpty()) { newtrgtext = trimText((String) newtrgs.get(newtrgcnt), false)[0]; List<String> note_list = (List) notes.get(newtrgcnt); String html = ""; for (String note : note_list) { if (note_list.indexOf(note) != note_list.size() - 1) { html = html + "• " + note.replace("\n", "<br>") + "<br>"; } else { html = html + "• " + note.replace("\n", "<br>"); } } cmt.html(html); newtrgcnt++; } if (!orgtrgtext.equals(newtrgtext)) { row.addClass("TrgTracked"); diff_match_patch dmp = new diff_match_patch(); dmp.Diff_EditCost = 6; LinkedList<diff_match_patch.Diff> Diffs = dmp.diff_main(orgtrgtext, newtrgtext); dmp.diff_cleanupSemantic(Diffs); String result = dmp.diff_prettyHtml(Diffs); result = result.replace("<br>", "<br>").replace("<span>", "").replace("</span>", "") .replaceAll("(?s)<ins[^>]*?>", "<ins>").replaceAll("(?s)</ins[^>]*?>", "</ins>") .replaceAll("(?s)<del[^>]*?>", "<del>").replaceAll("(?s)</del[^>]*?>", "</del>"); trg.html(result.replace(" ", " ")); } } this.htmlreportforfinalreview = (new File(this.translatedtxlf).getParent() + File.separator + new File(this.sourcefile).getName().substring(0, new File(this.sourcefile).getName().lastIndexOf(".")) + "_final.html"); if (new File(this.htmlreportforfinalreview).exists()) { new File(this.htmlreportforfinalreview).delete(); } Writer logWriter = new OutputStreamWriter(new FileOutputStream(this.htmlreportforfinalreview), "UTF-8"); logWriter.write(doc.toString().replace(" ", " ")); logWriter.close(); }
From source file:revaligner.service.FileAligner.java
public void exportHtmlLogFileForTranslation(ArrayList<String[]> reportstats, int[] fr_stats) throws Exception { System.out.println("creating log file for translation...."); StringBuffer sb = new StringBuffer(); sb.append("<html>\n"); sb.append("<head>\n"); sb.append("<meta http-equiv=\"Content-Type\" content=\"text/html;charset=UTF-8\" />\n"); sb.append("<title>Source Changes Report</title>\n"); sb.append("<script src=\"http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js\"></script>\n"); sb.append("<STYLE type=\"text/css\">\n"); sb.append("body, table {font-family: arial,sans-serif; font-size: 12px;}\n"); sb.append("table {display: block; width:100%;}\n"); sb.append("tbody {display: table; width:100%;}\n"); sb.append("td {background: #FFFFFF; color: #000000;}\n"); sb.append("th {background: #E0E0E0; text-align:center; font-weight:bold}\n"); sb.append("ttl {font-size: 24; font-weight: bold; color : #888}\n"); sb.append(//from w w w . j av a 2 s . c o m ".lbsrc {float: left;text-align:center;border-radius:16px;box-shadow: 3px 3px 3px #888888;border: 1px solid #CCC;font-size: 12.3px;word-wrap: break-word;line-height: 16px;margin:6px 0px;padding: 2px 7px;width: 6%;outline: 0;vertical-align: baseline;background: #FFFFFF no-repeat 19px 19px;}\n"); sb.append( ".lbtrg {float: left;text-align:center;border-radius:16px;box-shadow: 3px 3px 3px #888888;border: 1px solid #CCC;font-size: 12.3px;word-wrap: break-word;line-height: 16px;margin:6px;padding: 2px 7px;width: 6%;outline: 0;vertical-align: baseline;background: #E0EEEE no-repeat 19px 19px;}\n"); sb.append(".fproperties {font-weight: bold;margin:2px;}\n"); sb.append(".fpropertiescontent {font-weight: bold; color : #bbb}\n"); sb.append(".filter {font-weight: bold;margin:2px;color:#23407B}\n"); sb.append(".sid {width:5%}\n"); sb.append(".act {width:5%;font-size:12px}\n"); sb.append(".src {width:34%;white-space:pre-wrap;vertical-align:top;text-align:left;}\n"); sb.append( ".trg {width:34%;background: #E0EEEE;white-space:pre-wrap;vertical-align:top;text-align:left;}\n"); sb.append(".sco {width:4%}\n"); sb.append(".swc {width:4%}\n"); sb.append(".cmt {width:14%;text-align:left}\n"); sb.append(".tdh {background:#C9C9C9;font-weight:bold;}\n"); sb.append(".wc {background:#EEEEEE;font-weight:bold;text-align:center}\n"); sb.append(".nomatch {font-weight:bold;text-align:center;background: #888;}\n"); sb.append(".nontranslatable {font-weight:bold;text-align:center;background: #888;}\n"); sb.append(".fuzzy {font-weight:bold;text-align:center;background: yellow;}\n"); sb.append(".gold {font-weight:bold;text-align:center;background: #5EDA9E;}\n"); sb.append("ins {color: #1E90FF;text-decoration: underline;}\n"); sb.append("del {color: #990000;text-decoration: line-through;}\n"); sb.append(".accept {border-color: #1E90FF}\n"); sb.append(".reject {border-color: red}\n"); sb.append(".normal {border-color: black}\n"); sb.append( ".option {display:inline-block;cursor:pointer;border-style:solid;border-width:1px;width:10px;height:10px;margin-left:6%;margin-right:6%;border-radius: 2px;-moz-box-shadow:inset 0 0 10px #bbbbbb;-webkit-box-shadow: inset 0 0 10px #bbbbbb;box-shadow:inset 0 0 10px #bbbbbb;}\n"); sb.append(".selected {font-size: 14px}\n"); sb.append(".unselected {font-size: 6px}\n"); sb.append(".topref{float:right;font-weight:bold;color:blue}\n"); sb.append( "#search {float:right;position:fixed;top:1%;right:7px;opacity:0.5;width:40px;Background-color:#ccc;border-style:none;padding:2px}\n"); sb.append("</STYLE>\n"); sb.append("</head>\n"); sb.append("<body>\n"); sb.append("<ttl>RA Report - For Translation</ttl>\n"); sb.append("<br />\n"); sb.append("<br />\n"); sb.append("<br />\n"); sb.append("<div class=\"lbsrc\">source</div>\n"); sb.append("<div class=\"lbtrg\">translation</div>\n"); sb.append("<br />\n"); sb.append("<br />\n"); sb.append("<br />\n"); sb.append("<hr>\n"); sb.append( "<font color=\"1E90FF\">⬛ accept track changes</font> <font color=\"red\">⬛ reject track changes</font> ⬛ show all track changes\n"); sb.append("<br />\n"); sb.append("<br />\n"); sb.append("<div class=\"fproperties\">File Name : <span class=\"fpropertiescontent\">" + new File(this.populatedsourcetxlf).getName() + "</span></div>\n"); sb.append("<div class=\"fproperties\">Language Pair : <span class=\"fpropertiescontent\">" + this.sourcelanguage + " > " + this.targetlanguage + "</span></div>\n"); StringBuffer sb3 = new StringBuffer(); sb3.append( "<table cellspacing=\"0\" cellpadding=\"4\" bgcolor=\"#E0E0E0\" border=\"1\" bordercolor=\"#224466\" style=\"table-layout:fixed\">\n"); sb3.append("<tr>\n"); sb3.append("<th class=\"tdh\">Source</th>\n"); sb3.append("<th class=\"tdh\">Fully Aligned</th>\n"); sb3.append("<th class=\"tdh\">Aligned but Need Review</th>\n"); sb3.append("<th class=\"tdh\">Aligned but Source Tracked</th>\n"); sb3.append("<th class=\"tdh\">Not Aligned</th>\n"); sb3.append("<th class=\"tdh\">Total</th>\n"); sb3.append("</tr>\n"); int generalid = 0; int tc_count = 0; StringBuffer sb2 = new StringBuffer(); sb2.append( "<table cellspacing=\"0\" cellpadding=\"4\" bgcolor=\"#E0E0E0\" border=\"1\" bordercolor=\"#224466\" style=\"table-layout:fixed\">\n"); sb2.append("<tr>\n"); sb2.append("<th class=\"tdh sid\">Segment ID</th>\n"); sb2.append("<th class=\"tdh act\">View</th>\n"); sb2.append("<th class=\"tdh src\">Source</th>\n"); sb2.append("<th class=\"tdh trg\">Target</th>\n"); sb2.append("<th class=\"tdh sco\">Score</th>\n"); sb2.append("<th class=\"tdh swc\">Count</th>\n"); sb2.append("<th class=\"tdh cmt\">Comment</th>\n"); sb2.append("</tr>\n"); int wc_gold = 0; int wc_fuzzy_high = 0; int wc_fuzzy_low = 0; int wc_nomatch = 0; int wc_reps = fr_stats[0]; int wc_fuzzyreps = fr_stats[1]; for (int i = 0; i < reportstats.size(); i++) { String[] rstats = (String[]) reportstats.get(i); String source = rstats[0]; String target = rstats[1]; String score = rstats[2]; String match_type = rstats[3]; String tc_type = rstats[4]; String wc = rstats[5]; String comment = rstats[6]; if ((tc_type.equals("INSERTION")) || (tc_type.equals("MIX"))) { tc_count++; } if (!match_type.equals("N/A")) { generalid++; sb2.append("<tr id=\"" + generalid + "\" class=\"tp" + tc_type + "\">\n"); sb2.append("<th class=\"sid\">" + generalid + "</td>\n"); } else { sb2.append("<tr class=\"tp" + tc_type + "\">\n"); sb2.append("<th class=\"sid\">N/A</td>\n"); } sb2.append( "<th class=\"act\"><div class=\"option accept\"></div><div class=\"option reject\"></div><div class=\"option normal\"></div></td>\n"); sb2.append("<td class=\"src\">" + source.replace(" ", " ") + "</td>\n"); sb2.append("<td class=\"trg\">" + target.replace(" ", " ") + "</td>\n"); if (match_type.equals("exact-match")) { sb2.append("<td class=\"sco gold\">" + score + "</td>\n"); sb2.append("<th class=\"swc\">" + wc + "</td>\n"); wc_gold += Integer.parseInt(wc); } else if (match_type.equals("fuzzy-match")) { sb2.append("<td class=\"sco fuzzy\">" + score + "</td>\n"); sb2.append("<th class=\"swc\">" + wc + "</td>\n"); if (score.equals("75")) { wc_fuzzy_low += Integer.parseInt(wc); } else { wc_fuzzy_high += Integer.parseInt(wc); } } else if (match_type.equals("x-no-match")) { sb2.append("<td class=\"sco nomatch\">" + score + "</td>\n"); sb2.append("<th class=\"swc\">" + wc + "</td>\n"); wc_nomatch += Integer.parseInt(wc); } else { sb2.append("<td class=\"sco nontranslatable\">" + score + "</td>\n"); sb2.append("<th class=\"swc\">" + wc + "</td>\n"); } sb2.append("<th class=\"cmt\">" + comment + "</td>\n"); sb2.append("</tr>\n"); } sb2.append("</table>\n"); sb3.append("<tr>\n"); if (Locale.makeLocale(this.sourcelanguage).isFarEast()) { sb3.append("<th class=\"tdh\">Character Count</th>\n"); } else { sb3.append("<th class=\"tdh\">Word Count</th>\n"); } wc_nomatch = wc_nomatch - wc_reps - wc_fuzzyreps; sb3.append("<td class=\"wc\">" + wc_gold + "</th>\n"); sb3.append("<td class=\"wc\">" + wc_fuzzy_high + "</th>\n"); sb3.append("<td class=\"wc\">" + wc_fuzzy_low + "</th>\n"); sb3.append("<td class=\"wc\">" + wc_nomatch + "</th>\n"); sb3.append("<td class=\"wc\">" + (wc_gold + wc_fuzzy_high + wc_fuzzy_low + wc_nomatch + wc_reps + wc_fuzzyreps) + "</th>\n"); sb3.append("</tr>\n"); sb3.append("</table>\n"); sb.append( "<div class=\"fproperties\">Number of Segments with Track Changes / Total Segments(in TXLF): <span class=\"fpropertiescontent\">" + tc_count + " / " + generalid + "</span></div>\n"); sb.append("<br />\n"); sb.append(sb3); sb.append("<br />\n"); sb.append("<form>\n"); sb.append( "<input type=\"checkbox\" name=\"CKB\" value=\"SIT\"><span class=\"filter\">Show Segments in the TXLF Only</span>\n"); sb.append("<br />\n"); sb.append("<hr>\n"); sb.append( "<input type=\"radio\" name=\"Filter\" value=\"SA\" checked><span class=\"filter\">Show All</span>\n"); sb.append("<br />\n"); sb.append( "<input type=\"radio\" name=\"Filter\" value=\"ST\"><span class=\"filter\">Show Changed Segments</span>\n"); sb.append("<br />\n"); sb.append( "<input type=\"radio\" name=\"Filter\" value=\"STS\"><span class=\"filter\">Show Changed Sources</span>\n"); sb.append("<br />\n"); sb.append( "<input type=\"radio\" name=\"Filter\" value=\"STT\" disabled><span class=\"filter\" style=\"color:#bbbbbb\">Show Changed Targets</span>\n"); sb.append("<br />\n"); sb.append( "<input type=\"radio\" name=\"Filter\" value=\"STSNTT\" disabled><span class=\"filter\" style=\"color:#bbbbbb\">Show Changed Sources with Non-Changed Targets</span>\n"); sb.append("<br />\n"); sb.append( "<input type=\"radio\" name=\"Filter\" value=\"SNTTS\" disabled><span class=\"filter\" style=\"color:#bbbbbb\">Show Non-Changed Sources with Changed Targets</span>\n"); sb.append("</form>\n"); sb.append(sb2); sb.append("<br />\n"); sb.append("<form action=\"javascript:goToSegment();\">\n"); sb.append( "<input type=\"text\" id=\"search\" onfocus=\"searchfocus(this)\" onblur=\"searchnotfocus(this)\">\n"); sb.append("</form>\n"); sb.append("<a class=\"topref\" href=\"#TOP\" title=\"Back to Top\">TOP</a>\n"); sb.append("<br />\n"); sb.append("<hr>\n"); sb.append("<br />\n"); sb.append("<br />\n"); sb.append("<script type=\"text/javascript\">\n"); sb.append("$(document).ready(function(){\n"); sb.append("var norms = $(document).find('.normal');\n"); sb.append("for (var i = 0; i < norms.length; i++) {\n"); sb.append("$(norms[i]).addClass(\"selected\");\n"); sb.append("$(norms[i]).css(\"background-color\",\"black\");\n"); sb.append("}\n"); sb.append("});\n"); sb.append("\n"); sb.append("function goToSegment() {\n"); sb.append("var segid = document.getElementById(\"search\").value;\n"); sb.append("location.href = \"#\" + segid;\n"); sb.append("}\n"); sb.append("\n"); sb.append("function searchfocus(field) {\n"); sb.append("field.style.background = \"red\";\n"); sb.append("}\n"); sb.append("\n"); sb.append("function searchnotfocus(field) {\n"); sb.append("field.style.background = \"#ccc\";\n"); sb.append("}\n"); sb.append("\n"); sb.append("$(\".accept\").click(function() {\n"); sb.append("if(!$(this).hasClass(\"selected\")){\n"); sb.append("$(this).removeClass(\"unselected\")\n"); sb.append("$(this).addClass(\"selected\")\n"); sb.append("$(this).css(\"background-color\",\"1E90FF\");\n"); sb.append("var rej = $(this).parent().find('.reject')[0];\n"); sb.append("var nor = $(this).parent().find('.normal')[0];\n"); sb.append("$(rej).removeClass(\"selected\");\n"); sb.append("$(rej).addClass(\"unselected\");\n"); sb.append("$(rej).css(\"background-color\",\"\");\n"); sb.append("$(nor).removeClass(\"selected\");\n"); sb.append("$(nor).addClass(\"unselected\");\n"); sb.append("$(nor).css(\"background-color\",\"\");\n"); sb.append("\n"); sb.append("var accepts = $(this).parent().parent().find('ins');\n"); sb.append("for (var i = 0; i < accepts.length; i++) {\n"); sb.append("accepts[i].style.display = \"inline\";\n"); sb.append("accepts[i].style.textDecoration = \"none\";\n"); sb.append("}\n"); sb.append("var rejects = $(this).parent().parent().find('del');\n"); sb.append("for (var i = 0; i < rejects.length; i++) {\n"); sb.append("rejects[i].style.display = \"none\";\n"); sb.append("}\n"); sb.append("}\n"); sb.append("});\n"); sb.append("\n"); sb.append("$(\".reject\").click(function() {\n"); sb.append("if(!$(this).hasClass(\"selected\")){\n"); sb.append("$(this).removeClass(\"unselected\")\n"); sb.append("$(this).addClass(\"selected\")\n"); sb.append("$(this).css(\"background-color\",\"red\");\n"); sb.append("var act = $(this).parent().find('.accept')[0];\n"); sb.append("var nor = $(this).parent().find('.normal')[0];\n"); sb.append("$(act).removeClass(\"selected\");\n"); sb.append("$(act).addClass(\"unselected\");\n"); sb.append("$(act).css(\"background-color\",\"\");\n"); sb.append("$(nor).removeClass(\"selected\");\n"); sb.append("$(nor).addClass(\"unselected\");\n"); sb.append("$(nor).css(\"background-color\",\"\");\n"); sb.append("\n"); sb.append("var accepts = $(this).parent().parent().find('ins');\n"); sb.append("for (var i = 0; i < accepts.length; i++) {\n"); sb.append("accepts[i].style.display = \"none\";\n"); sb.append("}\n"); sb.append("var rejects = $(this).parent().parent().find('del');\n"); sb.append("for (var i = 0; i < rejects.length; i++) {\n"); sb.append("rejects[i].style.display = \"inline\";\n"); sb.append("rejects[i].style.textDecoration = \"none\";\n"); sb.append("}\n"); sb.append("}\n"); sb.append("});\n"); sb.append("\n"); sb.append("$(\".normal\").click(function() {\n"); sb.append("if(!$(this).hasClass(\"selected\")){\n"); sb.append("$(this).removeClass(\"unselected\")\n"); sb.append("$(this).addClass(\"selected\")\n"); sb.append("$(this).css(\"background-color\",\"black\");\n"); sb.append("var act = $(this).parent().find('.accept')[0];\n"); sb.append("var rej = $(this).parent().find('.reject')[0];\n"); sb.append("$(act).removeClass(\"selected\");\n"); sb.append("$(act).addClass(\"unselected\");\n"); sb.append("$(act).css(\"background-color\",\"\");\n"); sb.append("$(rej).removeClass(\"selected\");\n"); sb.append("$(rej).addClass(\"unselected\");\n"); sb.append("$(rej).css(\"background-color\",\"\");\n"); sb.append("\n"); sb.append("var accepts = $(this).parent().parent().find('ins');\n"); sb.append("for (var i = 0; i < accepts.length; i++) {\n"); sb.append("accepts[i].style.display = \"inline\";\n"); sb.append("accepts[i].style.textDecoration = \"underline\";\n"); sb.append("}\n"); sb.append("var rejects = $(this).parent().parent().find('del');\n"); sb.append("for (var i = 0; i < rejects.length; i++) {\n"); sb.append("rejects[i].style.display = \"inline\";\n"); sb.append("rejects[i].style.textDecoration = \"line-through\";\n"); sb.append("}\n"); sb.append("}\n"); sb.append("});\n"); sb.append("\n"); sb.append("$(\"input[name='CKB']\").change(function(){"); sb.append("if($(this).is(':checked')){"); sb.append("$('.tpDELETION').hide();"); sb.append("}else{"); sb.append( "if($(\"input[value='SA']\").is(':checked') || $(\"input[value='STS']\").is(':checked') || $(\"input[value='STSNTT']\").is(':checked')){"); sb.append("$('.tpDELETION').show();"); sb.append("}else{"); sb.append("$('.tpDELETION').hide();"); sb.append("}"); sb.append("}"); sb.append("});"); sb.append("\n"); sb.append("$(\"input[name='Filter']\").change(function(){"); sb.append("var value = $(this).val();"); sb.append("if(value == \"SA\"){"); sb.append("var trs = document.getElementsByTagName(\"tr\");"); sb.append("for(i=3;i<trs.length;i++){"); sb.append("var tr = trs[i];"); sb.append("if(!$(tr).hasClass(\"tpDELETION\")){"); sb.append("$(tr).show();"); sb.append("}else{"); sb.append("if($(\"input[name='CKB']\").is(':checked')){"); sb.append("$(tr).hide();"); sb.append("}else{"); sb.append("$(tr).show();"); sb.append("}"); sb.append("}"); sb.append("}"); sb.append("}else if(value == \"ST\"){"); sb.append("var trs = document.getElementsByTagName(\"tr\");"); sb.append("for(i=3;i<trs.length;i++){"); sb.append("var tr = trs[i];"); sb.append("if(!$(tr).hasClass(\"tpDELETION\")){"); sb.append("if(!$(tr).hasClass(\"tpNONE\") || $(tr).hasClass(\"TrgTracked\")){"); sb.append("$(tr).show();"); sb.append("}else{"); sb.append("$(tr).hide();"); sb.append("}"); sb.append("}else{"); sb.append("if($(\"input[name='CKB']\").is(':checked')){"); sb.append("$(tr).hide();"); sb.append("}else{"); sb.append("$(tr).show();"); sb.append("}"); sb.append("}"); sb.append("}"); sb.append("}else if(value == \"STS\"){"); sb.append("var trs = document.getElementsByTagName(\"tr\");"); sb.append("for(i=3;i<trs.length;i++){"); sb.append("var tr = trs[i];"); sb.append("if(!$(tr).hasClass(\"tpDELETION\")){"); sb.append("if($(tr).hasClass(\"tpNONE\")){"); sb.append("$(tr).hide();"); sb.append("}else{"); sb.append("$(tr).show();"); sb.append("}"); sb.append("}else{"); sb.append("if($(\"input[name='CKB']\").is(':checked')){"); sb.append("$(tr).hide();"); sb.append("}else{"); sb.append("$(tr).show();"); sb.append("}"); sb.append("}"); sb.append("}"); sb.append("}else if(value == \"STT\"){"); sb.append("var trs = document.getElementsByTagName(\"tr\");"); sb.append("for(i=3;i<trs.length;i++){"); sb.append("var tr = trs[i];"); sb.append("if(!$(tr).hasClass(\"tpDELETION\")){"); sb.append("if($(tr).hasClass(\"TrgTracked\")){"); sb.append("$(tr).show();"); sb.append("}else{"); sb.append("$(tr).hide();"); sb.append("}"); sb.append("}else{"); sb.append("$(tr).hide();"); sb.append("}"); sb.append("}"); sb.append("}else if(value == \"STSNTT\"){"); sb.append("var trs = document.getElementsByTagName(\"tr\");"); sb.append("for(i=3;i<trs.length;i++){"); sb.append("var tr = trs[i];"); sb.append("if(!$(tr).hasClass(\"tpDELETION\")){"); sb.append("if($(tr).hasClass(\"tpNONE\") || $(tr).hasClass(\"TrgTracked\")){"); sb.append("$(tr).hide();"); sb.append("}else{"); sb.append("$(tr).show();"); sb.append("}"); sb.append("}else{"); sb.append("if($(\"input[name='CKB']\").is(':checked')){"); sb.append("$(tr).hide();"); sb.append("}else{"); sb.append("$(tr).show();"); sb.append("}"); sb.append("}"); sb.append("}"); sb.append("}else if(value == \"SNTTS\"){"); sb.append("var trs = document.getElementsByTagName(\"tr\");"); sb.append("for(i=3;i<trs.length;i++){"); sb.append("var tr = trs[i];"); sb.append("if(!$(tr).hasClass(\"tpDELETION\")){"); sb.append("if($(tr).hasClass(\"tpNONE\") && $(tr).hasClass(\"TrgTracked\")){"); sb.append("$(tr).show();"); sb.append("}else{"); sb.append("$(tr).hide();"); sb.append("}"); sb.append("}else{"); sb.append("$(tr).hide();"); sb.append("}"); sb.append("}"); sb.append("}"); sb.append("});"); sb.append("\n"); sb.append("</script>"); sb.append("</body>\n"); sb.append("</html>\n"); this.htmlreportfortranslation = (new File(this.prjfolder) + File.separator + new File(this.sourcefile) .getName().substring(0, new File(this.sourcefile).getName().lastIndexOf(".")) + "_aligned.html"); this.htmlreportfortranslation_temp = (new File(this.prjfolder) + File.separator + new File(this.sourcefile) .getName().substring(0, new File(this.sourcefile).getName().lastIndexOf(".")) + "_aligned.temp"); if (new File(this.htmlreportfortranslation).exists()) { new File(this.htmlreportfortranslation).delete(); } org.jsoup.nodes.Document doc = Jsoup.parse(sb.toString()); Writer logWriter = new OutputStreamWriter(new FileOutputStream(this.htmlreportfortranslation), "UTF-8"); logWriter.write(doc.toString().replace(" ", " ")); Writer logWriter_temp = new OutputStreamWriter(new FileOutputStream(this.htmlreportfortranslation_temp), "UTF-8"); logWriter_temp.write(doc.toString()); logWriter.close(); logWriter_temp.close(); }
From source file:webserver.WebResource.java
@Path("index/blockexplorer.html") @GET/*from w w w . j av a2 s .c o m*/ public Response blockexplorerhtml() { String content; JSONObject langObj; String lang = request.getParameter("lang"); try { content = readFile("web/blockexplorer.html", StandardCharsets.UTF_8); } catch (IOException e) { LOGGER.error(e.getMessage(), e); return error404(request, null); } Document doc = null; doc = Jsoup.parse(content); // Element element = doc.getElementById("menu_top_100_"); // if (element != null) element.text("werwfyrtyryrtyrtyrtyrtyrtyrtyrtytyrerwer"); // if (lang != null) { langObj = Lang.openLangFile(lang + ".json"); Elements el = doc.select("translate"); for (Element e : el) { e.text(Lang.getInstance().translate_from_langObj(e.text(), langObj)); } } return Response.ok(doc.toString(), "text/html; charset=utf-8").build(); }