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 {
|
||||
private String _routerPrefix;
|
||||
private String _version;
|
||||
private String _country;
|
||||
private int _full;
|
||||
private boolean _lease;
|
||||
private boolean _debug;
|
||||
@ -33,6 +35,18 @@ public class NetDbHelper extends HelperBase {
|
||||
_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) {
|
||||
try {
|
||||
_full = Integer.parseInt(f);
|
||||
@ -59,8 +73,8 @@ public class NetDbHelper extends HelperBase {
|
||||
NetDbRenderer renderer = new NetDbRenderer(_context);
|
||||
try {
|
||||
renderNavBar();
|
||||
if (_routerPrefix != null)
|
||||
renderer.renderRouterInfoHTML(_out, _routerPrefix);
|
||||
if (_routerPrefix != null || _version!= null || _country != null)
|
||||
renderer.renderRouterInfoHTML(_out, _routerPrefix, _version, _country);
|
||||
else if (_lease)
|
||||
renderer.renderLeaseSetHTML(_out, _debug);
|
||||
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);
|
||||
if (".".equals(routerPrefix)) {
|
||||
renderRouterInfo(buf, _context.router().getRouterInfo(), true, true);
|
||||
@ -87,13 +94,23 @@ public class NetDbRenderer {
|
||||
Set<RouterInfo> routers = _context.netDb().getRouters();
|
||||
for (RouterInfo ri : routers) {
|
||||
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);
|
||||
notFound = false;
|
||||
}
|
||||
}
|
||||
if (notFound)
|
||||
buf.append(_("Router") + ' ').append(routerPrefix).append(' ' + _("not found in network database") );
|
||||
if (notFound) {
|
||||
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.flush();
|
||||
@ -320,8 +337,9 @@ public class NetDbRenderer {
|
||||
buf.append("<tr><th>" + _("Version") + "</th><th>" + _("Count") + "</th></tr>\n");
|
||||
for (String routerVersion : versionList) {
|
||||
int num = versions.count(routerVersion);
|
||||
buf.append("<tr><td align=\"center\">").append(DataHelper.stripHTML(routerVersion));
|
||||
buf.append("</td><td align=\"center\">").append(num).append("</td></tr>\n");
|
||||
String ver = DataHelper.stripHTML(routerVersion);
|
||||
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");
|
||||
}
|
||||
@ -353,9 +371,9 @@ public class NetDbRenderer {
|
||||
for (String country : countryList) {
|
||||
int num = countries.count(country);
|
||||
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("</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");
|
||||
}
|
||||
|
@ -23,5 +23,7 @@
|
||||
<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="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" />
|
||||
</div></div></body></html>
|
||||
|
Reference in New Issue
Block a user