forked from I2P_Developers/i2p.i2p
Console: Click on version or country in /netdb table to get list of those routers
This commit is contained in:
@ -5,6 +5,8 @@ import net.i2p.data.DataHelper;
|
|||||||
|
|
||||||
public class NetDbHelper extends HelperBase {
|
public class NetDbHelper extends HelperBase {
|
||||||
private String _routerPrefix;
|
private String _routerPrefix;
|
||||||
|
private String _version;
|
||||||
|
private String _country;
|
||||||
private int _full;
|
private int _full;
|
||||||
private boolean _lease;
|
private boolean _lease;
|
||||||
private boolean _debug;
|
private boolean _debug;
|
||||||
@ -33,6 +35,18 @@ public class NetDbHelper extends HelperBase {
|
|||||||
_routerPrefix = DataHelper.stripHTML(r); // XSS
|
_routerPrefix = DataHelper.stripHTML(r); // XSS
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** @since 0.9.21 */
|
||||||
|
public void setVersion(String v) {
|
||||||
|
if (v != null)
|
||||||
|
_version = DataHelper.stripHTML(v); // XSS
|
||||||
|
}
|
||||||
|
|
||||||
|
/** @since 0.9.21 */
|
||||||
|
public void setCountry(String c) {
|
||||||
|
if (c != null)
|
||||||
|
_country = DataHelper.stripHTML(c); // XSS
|
||||||
|
}
|
||||||
|
|
||||||
public void setFull(String f) {
|
public void setFull(String f) {
|
||||||
try {
|
try {
|
||||||
_full = Integer.parseInt(f);
|
_full = Integer.parseInt(f);
|
||||||
@ -59,8 +73,8 @@ public class NetDbHelper extends HelperBase {
|
|||||||
NetDbRenderer renderer = new NetDbRenderer(_context);
|
NetDbRenderer renderer = new NetDbRenderer(_context);
|
||||||
try {
|
try {
|
||||||
renderNavBar();
|
renderNavBar();
|
||||||
if (_routerPrefix != null)
|
if (_routerPrefix != null || _version!= null || _country != null)
|
||||||
renderer.renderRouterInfoHTML(_out, _routerPrefix);
|
renderer.renderRouterInfoHTML(_out, _routerPrefix, _version, _country);
|
||||||
else if (_lease)
|
else if (_lease)
|
||||||
renderer.renderLeaseSetHTML(_out, _debug);
|
renderer.renderLeaseSetHTML(_out, _debug);
|
||||||
else
|
else
|
||||||
|
@ -78,7 +78,14 @@ public class NetDbRenderer {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void renderRouterInfoHTML(Writer out, String routerPrefix) throws IOException {
|
/**
|
||||||
|
* One String must be non-null
|
||||||
|
*
|
||||||
|
* @param routerPrefix may be null. "." for our router only
|
||||||
|
* @param version may be null
|
||||||
|
* @param country may be null
|
||||||
|
*/
|
||||||
|
public void renderRouterInfoHTML(Writer out, String routerPrefix, String version, String country) throws IOException {
|
||||||
StringBuilder buf = new StringBuilder(4*1024);
|
StringBuilder buf = new StringBuilder(4*1024);
|
||||||
if (".".equals(routerPrefix)) {
|
if (".".equals(routerPrefix)) {
|
||||||
renderRouterInfo(buf, _context.router().getRouterInfo(), true, true);
|
renderRouterInfo(buf, _context.router().getRouterInfo(), true, true);
|
||||||
@ -87,13 +94,23 @@ public class NetDbRenderer {
|
|||||||
Set<RouterInfo> routers = _context.netDb().getRouters();
|
Set<RouterInfo> routers = _context.netDb().getRouters();
|
||||||
for (RouterInfo ri : routers) {
|
for (RouterInfo ri : routers) {
|
||||||
Hash key = ri.getIdentity().getHash();
|
Hash key = ri.getIdentity().getHash();
|
||||||
if (key.toBase64().startsWith(routerPrefix)) {
|
if ((routerPrefix != null && key.toBase64().startsWith(routerPrefix)) ||
|
||||||
|
(version != null && version.equals(ri.getVersion())) ||
|
||||||
|
(country != null && country.equals(_context.commSystem().getCountry(key)))) {
|
||||||
renderRouterInfo(buf, ri, false, true);
|
renderRouterInfo(buf, ri, false, true);
|
||||||
notFound = false;
|
notFound = false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (notFound)
|
if (notFound) {
|
||||||
buf.append(_("Router") + ' ').append(routerPrefix).append(' ' + _("not found in network database") );
|
buf.append(_("Router")).append(' ');
|
||||||
|
if (routerPrefix != null)
|
||||||
|
buf.append(routerPrefix);
|
||||||
|
else if (version != null)
|
||||||
|
buf.append(version);
|
||||||
|
else if (country != null)
|
||||||
|
buf.append(country);
|
||||||
|
buf.append(' ').append(_("not found in network database"));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
out.write(buf.toString());
|
out.write(buf.toString());
|
||||||
out.flush();
|
out.flush();
|
||||||
@ -320,8 +337,9 @@ public class NetDbRenderer {
|
|||||||
buf.append("<tr><th>" + _("Version") + "</th><th>" + _("Count") + "</th></tr>\n");
|
buf.append("<tr><th>" + _("Version") + "</th><th>" + _("Count") + "</th></tr>\n");
|
||||||
for (String routerVersion : versionList) {
|
for (String routerVersion : versionList) {
|
||||||
int num = versions.count(routerVersion);
|
int num = versions.count(routerVersion);
|
||||||
buf.append("<tr><td align=\"center\">").append(DataHelper.stripHTML(routerVersion));
|
String ver = DataHelper.stripHTML(routerVersion);
|
||||||
buf.append("</td><td align=\"center\">").append(num).append("</td></tr>\n");
|
buf.append("<tr><td align=\"center\"><a href=\"/netdb?v=").append(ver).append("\">").append(ver);
|
||||||
|
buf.append("</a></td><td align=\"center\">").append(num).append("</td></tr>\n");
|
||||||
}
|
}
|
||||||
buf.append("</table>\n");
|
buf.append("</table>\n");
|
||||||
}
|
}
|
||||||
@ -353,9 +371,9 @@ public class NetDbRenderer {
|
|||||||
for (String country : countryList) {
|
for (String country : countryList) {
|
||||||
int num = countries.count(country);
|
int num = countries.count(country);
|
||||||
buf.append("<tr><td><img height=\"11\" width=\"16\" alt=\"").append(country.toUpperCase(Locale.US)).append("\"");
|
buf.append("<tr><td><img height=\"11\" width=\"16\" alt=\"").append(country.toUpperCase(Locale.US)).append("\"");
|
||||||
buf.append(" src=\"/flags.jsp?c=").append(country).append("\"> ");
|
buf.append(" src=\"/flags.jsp?c=").append(country).append("\"> <a href=\"/netdb?c=").append(country).append("\">");
|
||||||
buf.append(getTranslatedCountry(country));
|
buf.append(getTranslatedCountry(country));
|
||||||
buf.append("</td><td align=\"center\">").append(num).append("</td></tr>\n");
|
buf.append("</a></td><td align=\"center\">").append(num).append("</td></tr>\n");
|
||||||
}
|
}
|
||||||
buf.append("</table>\n");
|
buf.append("</table>\n");
|
||||||
}
|
}
|
||||||
|
@ -23,5 +23,7 @@
|
|||||||
<jsp:setProperty name="netdbHelper" property="full" value="<%=request.getParameter(\"f\")%>" />
|
<jsp:setProperty name="netdbHelper" property="full" value="<%=request.getParameter(\"f\")%>" />
|
||||||
<jsp:setProperty name="netdbHelper" property="router" value="<%=request.getParameter(\"r\")%>" />
|
<jsp:setProperty name="netdbHelper" property="router" value="<%=request.getParameter(\"r\")%>" />
|
||||||
<jsp:setProperty name="netdbHelper" property="lease" value="<%=request.getParameter(\"l\")%>" />
|
<jsp:setProperty name="netdbHelper" property="lease" value="<%=request.getParameter(\"l\")%>" />
|
||||||
|
<jsp:setProperty name="netdbHelper" property="version" value="<%=request.getParameter(\"v\")%>" />
|
||||||
|
<jsp:setProperty name="netdbHelper" property="country" value="<%=request.getParameter(\"c\")%>" />
|
||||||
<jsp:getProperty name="netdbHelper" property="netDbSummary" />
|
<jsp:getProperty name="netdbHelper" property="netDbSummary" />
|
||||||
</div></div></body></html>
|
</div></div></body></html>
|
||||||
|
Reference in New Issue
Block a user