package com.limegroup.gnutella.browser; import java.io.IOException; import java.util.StringTokenizer; import com.limegroup.gnutella.util.URLDecoder; /** * Allow various Magnet Related HTML page rendering. */ public class MagnetHTML { static String buildMagnetDetailPage(String cmd) throws IOException { StringTokenizer st = new StringTokenizer(cmd, "&"); String keystr; String valstr; int start; String address = ""; String fname = ""; String sha1 = ""; String ret= magnetDetailPageHeader(); // Process each key=value pair while (st.hasMoreTokens()) { keystr = st.nextToken(); keystr = keystr.trim(); start = keystr.indexOf("="); if(start == -1) { throw new IOException("invalid command: "+cmd); } else { start++; } valstr = keystr.substring(start); keystr = keystr.substring(0,start-1); valstr=URLDecoder.decode(valstr); if ( keystr.equals("addr") ) { address = valstr; } else if ( keystr.startsWith("n") ) { fname = valstr; } else if ( keystr.startsWith("u") ) { sha1 = valstr; ret += magnetDetail(address, fname, sha1); } } ret += "</table>"+ "</body></html>"; return ret; } private static String magnetDetail(String address, String fname, String sha1) { String ret = " <tr> "+ " <td bgcolor=\"#CCCCCC\" class=\"text\"><b>Name</b></td>"+ " <td bgcolor=\"#FFFFFF\" class=\"name\">"+fname+"</td>"+ " </tr>"+ " <tr> "+ " <td bgcolor=\"#CCCCCC\" class=\"text\"><b>SHA1</b></td>"+ " <td bgcolor=\"#ffffff\" class=\"text\">"+sha1+"</td>"+ " </tr>"+ " <tr> "+ " <td bgcolor=\"#CCCCCC\" class=\"text\"><b>Link</b></td>"+ " <td bgcolor=\"#ffffff\" class=\"text\"><a href=\"magnet:?xt=urn:sha1:"+sha1+"&dn="+fname+"&xs=http://"+address+"/uri-res/N2R?urn:sha1:"+sha1+"\">"+ fname+"</a></td>"+ " </tr>"+ " <tr> "+ " <td bgcolor=\"#CCCCCC\" class=\"text\"><b>Magnet</b></td>"+ " <td bgcolor=\"#ffffff\"><textarea name=\"textarea\" cols=\"80\" rows=\"4\" wrap=\"VIRTUAL\" class=\"area\">magnet:?xt=urn:sha1:"+sha1+"&dn="+fname+"&xs=http://"+address+"/uri-res/N2R?urn:sha1:"+sha1+"</textarea></td>"+ " </tr>"+ " <tr> "+ " <td bgcolor=\"#CCCCCC\" class=\"text\"><b>Html link</b></td>"+ " <td bgcolor=\"#ffffff\"><textarea name=\"textarea\" cols=\"80\" rows=\"5\" wrap=\"VIRTUAL\" class=\"area\"><a href=\"magnet:?xt=urn:sha1:"+sha1+"&dn="+fname+"&xs=http://"+address+"/uri-res/N2R?urn:sha1:"+sha1+"\">"+fname+"</a></textarea></td>"+ " </tr>"+ " <tr bgcolor=\"#333333\"> "+ " <td colspan=\"2\" class=\"text\" height=\"5\"></td></tr>"; return ret; } private static String magnetDetailPageHeader() { String ret= "<html>"+ "<head>"+ "<title>LimeWire Magnet Descriptions</title>"+ "<style type=\"text/css\">"+ "<!--"+ ".text {"+ " font-family: Verdana, Arial, Helvetica, sans-serif;"+ " font-size: 11px;"+ " color: #333333;"+ "}"+ ".header {"+ " font-family: Arial, Helvetica, sans-serif;"+ " font-size: 14pt;"+ " color: #ffffff;"+ "}"+ ".name {"+ " font-family: Verdana, Arial, Helvetica, sans-serif;"+ " font-size: 11px;"+ " font-weight: bold;"+ " color: #000000;"+ "}"+ ".area { "+ "border: 1px solid;"+ "margin: 0;"+ "padding: 4px;"+ "background: #FFFEF4;"+ "color: #333333;"+ "font: 11px Verdana, Arial;"+ "text-align: left;"+ "}"+ "-->"+ "</style>"+ "<meta http-equiv=\"Content-Type\" content=\"text/html; charset=iso-8859-1\">"+ "</head>"+ "<body bgcolor=\"#666666\">"+ "<span class=\"header\"><center>"+ " LimeWire Magnet Details "+ "</center></span><br>"+ "<table border=\"0\" cellpadding=\"5\" cellspacing=\"1\" bgcolor=\"#999999\" align=\"center\">"; return ret; } }