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 077b24351..6b8273455 100644
--- a/apps/i2psnark/java/src/org/klomp/snark/web/I2PSnarkServlet.java
+++ b/apps/i2psnark/java/src/org/klomp/snark/web/I2PSnarkServlet.java
@@ -827,32 +827,13 @@ public class I2PSnarkServlet extends Default {
out.write(statusString + "\n\t");
out.write("
");
- // temporarily hardcoded for postman* and anonymity, requires bytemonsoon patch for lookup by info_hash
String announce = null;
- if (isValid)
+ if (isValid) {
announce = meta.getAnnounce();
- if (announce != null && (announce.startsWith("http://YRgrgTLG") || announce.startsWith("http://8EoJZIKr") ||
- announce.startsWith("http://lnQ6yoBT") || announce.startsWith("http://tracker2.postman.i2p/") ||
- announce.startsWith("http://ahsplxkbhemefwvvml7qovzl5a2b5xo5i7lyai7ntdunvcyfdtna.b32.i2p/"))) {
- Map trackers = _manager.getTrackers();
- for (Iterator iter = trackers.entrySet().iterator(); iter.hasNext(); ) {
- Map.Entry entry = (Map.Entry)iter.next();
- String name = (String)entry.getKey();
- String baseURL = (String)entry.getValue();
- if (!(baseURL.startsWith(announce) || // vvv hack for non-b64 announce in list vvv
- (announce.startsWith("http://lnQ6yoBT") && baseURL.startsWith("http://tracker2.postman.i2p/")) ||
- (announce.startsWith("http://ahsplxkbhemefwvvml7qovzl5a2b5xo5i7lyai7ntdunvcyfdtna.b32.i2p/") && baseURL.startsWith("http://tracker2.postman.i2p/"))))
- continue;
- int e = baseURL.indexOf('=');
- if (e < 0)
- continue;
- baseURL = baseURL.substring(e + 1);
- out.write("");
- out.write(" ");
- out.write("");
- break;
+ if (announce != null) {
+ String trackerLink = getTrackerLink(announce, snark.getInfoHash());
+ if (trackerLink != null)
+ out.write(trackerLink);
}
}
@@ -1094,6 +1075,39 @@ public class I2PSnarkServlet extends Default {
}
}
+ /**
+ * @return string or null
+ * @since 0.8.4
+ */
+ private String getTrackerLink(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/") ||
+ announce.startsWith("http://ahsplxkbhemefwvvml7qovzl5a2b5xo5i7lyai7ntdunvcyfdtna.b32.i2p/"))) {
+ Map trackers = _manager.getTrackers();
+ for (Map.Entry entry : trackers.entrySet()) {
+ String baseURL = entry.getValue();
+ if (!(baseURL.startsWith(announce) || // vvv hack for non-b64 announce in list vvv
+ (announce.startsWith("http://lnQ6yoBT") && baseURL.startsWith("http://tracker2.postman.i2p/")) ||
+ (announce.startsWith("http://ahsplxkbhemefwvvml7qovzl5a2b5xo5i7lyai7ntdunvcyfdtna.b32.i2p/") && baseURL.startsWith("http://tracker2.postman.i2p/"))))
+ continue;
+ int e = baseURL.indexOf('=');
+ if (e < 0)
+ continue;
+ baseURL = baseURL.substring(e + 1);
+ String name = entry.getKey();
+ StringBuilder buf = new StringBuilder(128);
+ buf.append("" +
+ " ");
+ return buf.toString();
+ }
+ }
+ return null;
+ }
+
private void writeAddForm(PrintWriter out, HttpServletRequest req) throws IOException {
String uri = req.getRequestURI();
String newURL = req.getParameter("newURL");
@@ -1577,8 +1591,25 @@ public class I2PSnarkServlet extends Default {
}
buf.append(" ").append(_("Pieces")).append(": ").append(pieces);
buf.append(" ").append(_("Piece size")).append(": ").append(formatSize(snark.getPieceLength(0)));
+
+ if (meta != null) {
+ String announce = meta.getAnnounce();
+ if (announce != null) {
+ String trackerLink = getTrackerLink(announce, snark.getInfoHash());
+ if (trackerLink != null) {
+ if (announce.startsWith("http://"))
+ announce = announce.substring(7);
+ int slsh = announce.indexOf('/');
+ if (slsh > 0)
+ announce = announce.substring(0, slsh);
+ buf.append(" ").append(trackerLink).append(' ').append(announce);
+ }
+ }
+ }
+
String hex = I2PSnarkUtil.toHex(snark.getInfoHash());
- buf.append(" ").append(_("Magnet link")).append(": ")
+ buf.append(" ").append(toImg("magnet", _("Magnet link"))).append(" ")
.append(MAGNET).append(hex).append("");
// We don't have the hash of the torrent file
//buf.append(" ").append(_("Maggot link")).append(": ")
|