diff --git a/apps/i2psnark/java/src/org/klomp/snark/web/I2PSnarkServlet.java b/apps/i2psnark/java/src/org/klomp/snark/web/I2PSnarkServlet.java index 3907b9587..0b1322fd3 100644 --- a/apps/i2psnark/java/src/org/klomp/snark/web/I2PSnarkServlet.java +++ b/apps/i2psnark/java/src/org/klomp/snark/web/I2PSnarkServlet.java @@ -1325,7 +1325,7 @@ public class I2PSnarkServlet extends DefaultServlet { * @return string or null * @since 0.8.4 */ - private String getTrackerLink(String announce, byte[] infohash) { + private String getTrackerLinkUrl(String announce, byte[] infohash) { // temporarily hardcoded for postman* and anonymity, requires bytemonsoon patch for lookup by info_hash if (announce != null && (announce.startsWith("http://YRgrgTLG") || announce.startsWith("http://8EoJZIKr") || announce.startsWith("http://lnQ6yoBT") || announce.startsWith("http://tracker2.postman.i2p/") || @@ -1341,15 +1341,29 @@ public class I2PSnarkServlet extends DefaultServlet { StringBuilder buf = new StringBuilder(128); buf.append("" + - "\"").append(_("Info")).append("\""); + .append("\" title=\"").append(_("Details at {0} tracker", name)).append("\" target=\"_blank\">"); return buf.toString(); } } return null; } + /** + * @return string or null + * @since 0.8.4 + */ + private String getTrackerLink(String announce, byte[] infohash) { + String linkUrl = getTrackerLinkUrl(announce, infohash); + if (linkUrl != null) { + StringBuilder buf = new StringBuilder(128); + buf.append(linkUrl) + .append("\"").append(_("Info")).append("\""); + return buf.toString(); + } + return null; + } + private void writeAddForm(PrintWriter out, HttpServletRequest req) throws IOException { // display incoming parameter if a GET so links will work String newURL = req.getParameter("newURL"); @@ -2074,6 +2088,9 @@ public class I2PSnarkServlet extends DefaultServlet { if (trackerLink != null) buf.append(trackerLink).append(' '); buf.append("").append(_("Tracker")).append(": "); + String trackerLinkUrl = getTrackerLinkUrl(announce, snark.getInfoHash()); + if (trackerLinkUrl != null) + buf.append(trackerLinkUrl); if (announce.startsWith("http://")) announce = announce.substring(7); int slsh = announce.indexOf('/'); @@ -2081,15 +2098,19 @@ public class I2PSnarkServlet extends DefaultServlet { announce = announce.substring(0, slsh); if (announce.length() > 67) announce = announce.substring(0, 40) + "…" + announce.substring(announce.length() - 8); - buf.append(announce).append(""); + buf.append(announce); + if (trackerLinkUrl != null) + buf.append(""); + buf.append(""); } } String hex = I2PSnarkUtil.toHex(snark.getInfoHash()); if (meta == null || !meta.isPrivate()) { - buf.append("") + buf.append("") .append(toImg("magnet", _("Magnet link"))) - .append(" Magnet: Magnet: ") .append(MAGNET_FULL).append(hex).append("") .append("\n");