Add a preliminary undercoat to I2PSnark UI.

This commit is contained in:
z3d
2009-07-21 04:33:13 +00:00
parent 0e9bfba84d
commit fe394b0b46
4 changed files with 221 additions and 81 deletions

View File

@ -702,7 +702,7 @@ public class SnarkManager implements Snark.CompleteListener {
// , "mastertracker", "http://VzXD~stRKbL3MOmeTn1iaCQ0CFyTmuFHiKYyo0Rd~dFPZFCYH-22rT8JD7i-C2xzYFa4jT5U2aqHzHI-Jre4HL3Ri5hFtZrLk2ax3ji7Qfb6qPnuYkuiF2E2UDmKUOppI8d9Ye7tjdhQVCy0izn55tBaB-U7UWdcvSK2i85sauyw3G0Gfads1Rvy5-CAe2paqyYATcDmGjpUNLoxbfv9KH1KmwRTNH6k1v4PyWYYnhbT39WfKMbBjSxVQRdi19cyJrULSWhjxaQfJHeWx5Z8Ev4bSPByBeQBFl2~4vqy0S5RypINsRSa3MZdbiAAyn5tr5slWR6QdoqY3qBQgBJFZppy-3iWkFqqKgSxCPundF8gdDLC5ddizl~KYcYKl42y9SGFHIukH-TZs8~em0~iahzsqWVRks3zRG~tlBcX2U3M2~OJs~C33-NKhyfZT7-XFBREvb8Szmd~p66jDxrwOnKaku-G6DyoQipJqIz4VHmY9-y5T8RrUcJcM-5lVoMpAAAA.i2p/announce.php=http://tracker.mastertracker.i2p/" // , "mastertracker", "http://VzXD~stRKbL3MOmeTn1iaCQ0CFyTmuFHiKYyo0Rd~dFPZFCYH-22rT8JD7i-C2xzYFa4jT5U2aqHzHI-Jre4HL3Ri5hFtZrLk2ax3ji7Qfb6qPnuYkuiF2E2UDmKUOppI8d9Ye7tjdhQVCy0izn55tBaB-U7UWdcvSK2i85sauyw3G0Gfads1Rvy5-CAe2paqyYATcDmGjpUNLoxbfv9KH1KmwRTNH6k1v4PyWYYnhbT39WfKMbBjSxVQRdi19cyJrULSWhjxaQfJHeWx5Z8Ev4bSPByBeQBFl2~4vqy0S5RypINsRSa3MZdbiAAyn5tr5slWR6QdoqY3qBQgBJFZppy-3iWkFqqKgSxCPundF8gdDLC5ddizl~KYcYKl42y9SGFHIukH-TZs8~em0~iahzsqWVRks3zRG~tlBcX2U3M2~OJs~C33-NKhyfZT7-XFBREvb8Szmd~p66jDxrwOnKaku-G6DyoQipJqIz4VHmY9-y5T8RrUcJcM-5lVoMpAAAA.i2p/announce.php=http://tracker.mastertracker.i2p/"
// , "Galen", "http://5jpwQMI5FT303YwKa5Rd38PYSX04pbIKgTaKQsWbqoWjIfoancFdWCShXHLI5G5ofOb0Xu11vl2VEMyPsg1jUFYSVnu4-VfMe3y4TKTR6DTpetWrnmEK6m2UXh91J5DZJAKlgmO7UdsFlBkQfR2rY853-DfbJtQIFl91tbsmjcA5CGQi4VxMFyIkBzv-pCsuLQiZqOwWasTlnzey8GcDAPG1LDcvfflGV~6F5no9mnuisZPteZKlrv~~TDoXTj74QjByWc4EOYlwqK8sbU9aOvz~s31XzErbPTfwiawiaZ0RUI-IDrKgyvmj0neuFTWgjRGVTH8bz7cBZIc3viy6ioD-eMQOrXaQL0TCWZUelRwHRvgdPiQrxdYQs7ixkajeHzxi-Pq0EMm5Vbh3j3Q9kfUFW3JjFDA-MLB4g6XnjCbM5J1rC0oOBDCIEfhQkszru5cyLjHiZ5yeA0VThgu~c7xKHybv~OMXION7V8pBKOgET7ZgAkw1xgYe3Kkyq5syAAAA.i2p/tr/announce.php=http://galen.i2p/tr/" // , "Galen", "http://5jpwQMI5FT303YwKa5Rd38PYSX04pbIKgTaKQsWbqoWjIfoancFdWCShXHLI5G5ofOb0Xu11vl2VEMyPsg1jUFYSVnu4-VfMe3y4TKTR6DTpetWrnmEK6m2UXh91J5DZJAKlgmO7UdsFlBkQfR2rY853-DfbJtQIFl91tbsmjcA5CGQi4VxMFyIkBzv-pCsuLQiZqOwWasTlnzey8GcDAPG1LDcvfflGV~6F5no9mnuisZPteZKlrv~~TDoXTj74QjByWc4EOYlwqK8sbU9aOvz~s31XzErbPTfwiawiaZ0RUI-IDrKgyvmj0neuFTWgjRGVTH8bz7cBZIc3viy6ioD-eMQOrXaQL0TCWZUelRwHRvgdPiQrxdYQs7ixkajeHzxi-Pq0EMm5Vbh3j3Q9kfUFW3JjFDA-MLB4g6XnjCbM5J1rC0oOBDCIEfhQkszru5cyLjHiZ5yeA0VThgu~c7xKHybv~OMXION7V8pBKOgET7ZgAkw1xgYe3Kkyq5syAAAA.i2p/tr/announce.php=http://galen.i2p/tr/"
, "crstrack", "http://b4G9sCdtfvccMAXh~SaZrPqVQNyGQbhbYMbw6supq2XGzbjU4NcOmjFI0vxQ8w1L05twmkOvg5QERcX6Mi8NQrWnR0stLExu2LucUXg1aYjnggxIR8TIOGygZVIMV3STKH4UQXD--wz0BUrqaLxPhrm2Eh9Hwc8TdB6Na4ShQUq5Xm8D4elzNUVdpM~RtChEyJWuQvoGAHY3ppX-EJJLkiSr1t77neS4Lc-KofMVmgI9a2tSSpNAagBiNI6Ak9L1T0F9uxeDfEG9bBSQPNMOSUbAoEcNxtt7xOW~cNOAyMyGydwPMnrQ5kIYPY8Pd3XudEko970vE0D6gO19yoBMJpKx6Dh50DGgybLQ9CpRaynh2zPULTHxm8rneOGRcQo8D3mE7FQ92m54~SvfjXjD2TwAVGI~ae~n9HDxt8uxOecAAvjjJ3TD4XM63Q9TmB38RmGNzNLDBQMEmJFpqQU8YeuhnS54IVdUoVQFqui5SfDeLXlSkh4vYoMU66pvBfWbAAAA.i2p/tracker/announce.php=http://crstrack.i2p/tracker/" , "crstrack", "http://b4G9sCdtfvccMAXh~SaZrPqVQNyGQbhbYMbw6supq2XGzbjU4NcOmjFI0vxQ8w1L05twmkOvg5QERcX6Mi8NQrWnR0stLExu2LucUXg1aYjnggxIR8TIOGygZVIMV3STKH4UQXD--wz0BUrqaLxPhrm2Eh9Hwc8TdB6Na4ShQUq5Xm8D4elzNUVdpM~RtChEyJWuQvoGAHY3ppX-EJJLkiSr1t77neS4Lc-KofMVmgI9a2tSSpNAagBiNI6Ak9L1T0F9uxeDfEG9bBSQPNMOSUbAoEcNxtt7xOW~cNOAyMyGydwPMnrQ5kIYPY8Pd3XudEko970vE0D6gO19yoBMJpKx6Dh50DGgybLQ9CpRaynh2zPULTHxm8rneOGRcQo8D3mE7FQ92m54~SvfjXjD2TwAVGI~ae~n9HDxt8uxOecAAvjjJ3TD4XM63Q9TmB38RmGNzNLDBQMEmJFpqQU8YeuhnS54IVdUoVQFqui5SfDeLXlSkh4vYoMU66pvBfWbAAAA.i2p/tracker/announce.php=http://crstrack.i2p/tracker/"
, "Postman2", "http://tracker2.postman.i2p/announce.php=http://tracker2.postman.i2p/" , "PaTracker", "http://tracker2.postman.i2p/announce.php=http://tracker2.postman.i2p/"
}; };
/** comma delimited list of name=announceURL=baseURL for the trackers to be displayed */ /** comma delimited list of name=announceURL=baseURL for the trackers to be displayed */

View File

@ -83,12 +83,9 @@ public class I2PSnarkServlet extends HttpServlet {
out.write("<meta http-equiv=\"refresh\" content=\"60;" + req.getRequestURI() + peerString + "\">\n"); out.write("<meta http-equiv=\"refresh\" content=\"60;" + req.getRequestURI() + peerString + "\">\n");
out.write(HEADER); out.write(HEADER);
out.write("<table border=\"0\" width=\"100%\">\n"); out.write("<div class=\"page\"><table border=\"0\" width=\"100%\"><tr><td align=\"center\" valign=\"top\" class=\"snarkTitle\">I2PSnark<br>Anonymous BitTorrent Client for I2P<hr /></hr></td></tr>");
out.write("<tr><td width=\"20%\" class=\"snarkTitle\" valign=\"top\" align=\"left\">"); out.write("<tr><td align=\"center\"><a href=\"" + req.getRequestURI() + peerString + "\" class=\"snarkRefresh\">Refresh</a>");
out.write("I2PSnark<br />\n"); out.write(" | <a href=\"http://forum.i2p/viewforum.php?f=21\" class=\"snarkRefresh\">Forum</a>\n");
out.write("<table border=\"0\" width=\"100%\">\n");
out.write("<tr><td><a href=\"" + req.getRequestURI() + peerString + "\" class=\"snarkRefresh\">Refresh</a>\n");
out.write("<td><a href=\"http://forum.i2p/viewforum.php?f=21\" class=\"snarkRefresh\">Forum</a>\n");
int count = 0; int count = 0;
Map trackers = _manager.getTrackers(); Map trackers = _manager.getTrackers();
for (Iterator iter = trackers.entrySet().iterator(); iter.hasNext(); ) { for (Iterator iter = trackers.entrySet().iterator(); iter.hasNext(); ) {
@ -100,19 +97,19 @@ public class I2PSnarkServlet extends HttpServlet {
continue; continue;
baseURL = baseURL.substring(e + 1); baseURL = baseURL.substring(e + 1);
if (count++ % 2 == 0) if (count++ % 2 == 0)
out.write("<tr>"); out.write("");
out.write("<td><a href=\"" + baseURL + "\" class=\"snarkRefresh\">" + name + "</a>\n"); out.write(" | <a href=\"" + baseURL + "\" class=\"snarkRefresh\">" + name + "</a>");
} }
if (count % 2 == 1) if (count % 2 == 1)
out.write("<td>&nbsp;\n"); out.write("");
out.write("</table>\n"); out.write("</table>\n");
out.write("</td><td width=\"80%\" class=\"snarkMessages\" valign=\"top\" align=\"left\"><pre>"); out.write("<div class=\"snarkMessages\"><table><tr><td valign=\"top\" align=\"left\"><pre>");
List msgs = _manager.getMessages(); List msgs = _manager.getMessages();
for (int i = msgs.size()-1; i >= 0; i--) { for (int i = msgs.size()-1; i >= 0; i--) {
String msg = (String)msgs.get(i); String msg = (String)msgs.get(i);
out.write(msg + "\n"); out.write(msg + "\n");
} }
out.write("</pre></td></tr></table>\n"); out.write("</pre></td></tr></table></div>\n");
List snarks = getSortedSnarks(req); List snarks = getSortedSnarks(req);
String uri = req.getRequestURI(); String uri = req.getRequestURI();
@ -791,72 +788,8 @@ public class I2PSnarkServlet extends HttpServlet {
"<head>\n" + "<head>\n" +
"<title>I2PSnark - anonymous bittorrent</title>\n"; "<title>I2PSnark - anonymous bittorrent</title>\n";
private static final String HEADER = "<style>\n" + private static final String HEADER = "<link href=\"../themes/console/snark.css\" rel=\"stylesheet\" type=\"text/css\" />";
"body {\n" +
" background-color: #C7CFB4;\n" +
"}\n" +
".snarkTitle {\n" +
" text-align: left;\n" +
" float: left;\n" +
" margin: 0px 0px 5px 5px;\n" +
" display: inline;\n" +
" font-size: 16pt;\n" +
" font-weight: bold;\n" +
"}\n" +
".snarkRefresh {\n" +
" font-size: 10pt;\n" +
"}\n" +
".snarkMessages {\n" +
" border: none;\n" +
" background-color: #CECFC6;\n" +
" font-family: monospace;\n" +
" font-size: 10pt;\n" +
" font-weight: 100;\n" +
" width: 100%;\n" +
" text-align: left;\n" +
" margin: 0px 0px 0px 0px;\n" +
" border: 0px;\n" +
" padding: 5px;\n" +
" border-width: 0px;\n" +
" border-spacing: 0px;\n" +
"}\n" +
"table {\n" +
" margin: 0px 0px 0px 0px;\n" +
" border: 0px;\n" +
" padding: 0px;\n" +
" border-width: 0px;\n" +
" border-spacing: 0px;\n" +
"}\n" +
"th {\n" +
" background-color: #C7D5D5;\n" +
" padding: 0px 7px 0px 3px;\n" +
"}\n" +
"td {\n" +
" padding: 0px 7px 0px 3px;\n" +
"}\n" +
".snarkTorrentEven {\n" +
" background-color: #E7E7E7;\n" +
"}\n" +
".snarkTorrentOdd {\n" +
" background-color: #DDDDCC;\n" +
"}\n" +
".snarkNewTorrent {\n" +
" font-size: 10pt;\n" +
"}\n" +
".snarkAddInfo {\n" +
" font-size: 10pt;\n" +
"}\n" +
".snarkConfigTitle {\n" +
" font-size: 12pt;\n" +
" font-weight: bold;\n" +
"}\n" +
".snarkConfig {\n" +
" font-size: 10pt;\n" +
"}\n" +
"</style>\n" +
"</head>\n" +
"<body>\n";
private static final String TABLE_HEADER = "<table border=\"0\" class=\"snarkTorrents\" width=\"100%\" cellpadding=\"0 10px\">\n" + private static final String TABLE_HEADER = "<table border=\"0\" class=\"snarkTorrents\" width=\"100%\" cellpadding=\"0 10px\">\n" +
"<thead>\n" + "<thead>\n" +
@ -871,12 +804,12 @@ public class I2PSnarkServlet extends HttpServlet {
" <th align=\"right\" valign=\"top\">Up Rate</th>\n"; " <th align=\"right\" valign=\"top\">Up Rate</th>\n";
private static final String TABLE_EMPTY = "<tr class=\"snarkTorrentEven\">" + private static final String TABLE_EMPTY = "<tr class=\"snarkTorrentEven\">" +
"<td class=\"snarkTorrentEven\" align=\"left\"" + "<td class=\"snarkTorrentEven\" align=\"center\"" +
" valign=\"top\" colspan=\"8\">No torrents</td></tr>\n"; " valign=\"top\" colspan=\"8\"><i>No torrents</i></td></tr>\n";
private static final String TABLE_FOOTER = "</table>\n"; private static final String TABLE_FOOTER = "</table>\n";
private static final String FOOTER = "</body></html>"; private static final String FOOTER = "</div></div></body></html>";
/** inner class, don't bother reindenting */ /** inner class, don't bother reindenting */
private static class FetchAndAdd implements Runnable { private static class FetchAndAdd implements Runnable {

93
apps/i2psnark/snark.css Normal file
View File

@ -0,0 +1,93 @@
body {
background-color: #eef;
color:#001;
font-family:"Lucida Sans Unicode", "Bitstream Vera Sans", Verdana, Tahoma, Helvetica, sans-serif;
}
.snarkTitle {
text-align: left;
float: left;
margin: 0px 0px 5px 5px;
display: inline;
font-size: 16pt;
font-weight: bold;
}
.snarkRefresh {
font-size: 10pt;
}
.snarkMessages {
border: none;
background-color: #ddf;
font-family: monospace;
font-size: 10pt;
font-weight: 100;
width: 100%;
text-align: left;
margin: 0px 0px 15px 15px;
border: 0px;
padding: 5px;
border-width: 0px;
border-spacing: 0px;
-moz-border-radius: 4px;
-khtml-border-radius: 4px;
border-radius: 4px;
border: 1px solid #001;
}
table {
margin: 0px 0px 0px 0px;
border: 0px;
padding: 0px;
border-width: 0px;
border-spacing: 0px;
}
th {
background-color: #C7D5D5;
padding: 5px;
font-size: 9pt;
}
td {
padding: 5px;
}
.snarkTorrentEven {
background-color: #E7E7E7;
}
.snarkTorrentOdd {
background-color: #DDDDCC;
}
.snarkNewTorrent {
font-size: 10pt;
}
.snarkAddInfo {
font-size: 10pt;
line-height: 130% !important;
}
.snarkConfigTitle {
font-size: 11pt;
font-weight: bold;
}
.snarkConfig {
font-size: 10pt;
}
.page {
background-color: #fff;
color:#001;
margin: 20px;
padding: 20px 20px 0 20px;
-moz-border-radius: 4px;
-khtml-border-radius: 4px;
border-radius: 4px;
border: 1px solid #001;
font-size: 9pt !important;
line-height: 160% !important;
-moz-box-shadow: inset 0px 0px 1px 0px #002;
text-align: center;
}
form {
line-height: 300%
}
p {
line-height: 150%
}

View File

@ -0,0 +1,114 @@
body {
background-color: #eef;
color:#001;
font-family:"Lucida Sans Unicode", "Bitstream Vera Sans", Verdana, Tahoma, Helvetica, sans-serif;
font-size: 9pt;
}
/*
.snarkTitle {
text-align: left;
float: left;
margin: 0px 0px 5px 5px;
display: inline;
font-size: 16pt;
font-weight: bold;
}
*/
.snarkTitle {
font-size: 16pt;
font-weight: bold;
text-align: center;
}
.snarkRefresh {
font-size: 9pt;
}
.snarkMessages {
border: none;
background-color: #9f9;
font-family: monospace;
font-size: 10pt;
font-weight: bold;
/* width: 100%; */
text-align: left;
margin: 0 0 15px 0;
border: 0px;
padding: 5px;
border-width: 0px;
border-spacing: 0px;
-moz-border-radius: 4px;
-khtml-border-radius: 4px;
border-radius: 4px;
border: 2px inset #770;
overflow-x: scroll;
}
table {
margin: 0px 0px 20px 0px;
border: 0px;
padding: 0px;
border-width: 0px;
border-spacing: 0px;
}
th {
background-color: #C7D5D5;
padding: 5px;
font-size: 9pt;
}
td {
padding: 5px;
}
.snarkTorrentEven {
background-color: #bbf;
font-size: 8pt;
}
.snarkTorrentOdd {
background-color: #ddf;
font-size: 8pt;
}
.snarkNewTorrent {
font-size: 10pt;
}
.snarkAddInfo {
font-size: 10pt;
line-height: 130% !important;
}
.snarkConfigTitle {
font-size: 11pt;
font-weight: bold;
text-decoration: underline;
}
.snarkConfig {
font-size: 10pt;
}
.page {
background-color: #fff;
color:#001;
margin: 20px;
padding: 20px 20px 0 20px;
-moz-border-radius: 4px;
-khtml-border-radius: 4px;
border-radius: 4px;
border: 1px solid #001;
font-size: 9pt !important;
line-height: 160% !important;
-moz-box-shadow: inset 0px 0px 1px 0px #002;
text-align: center;
}
form {
line-height: 300%
}
p {
line-height: 150%
}
a:link {
padding 5px;
}