display list of senders

This commit is contained in:
Zlatin Balevsky
2019-12-03 23:59:51 +00:00
parent 81c406cbf6
commit 382e21225b
2 changed files with 53 additions and 3 deletions

View File

@ -13,6 +13,9 @@ import javax.servlet.http.HttpServletResponse;
import com.muwire.core.Persona;
import com.muwire.core.search.UIResultEvent;
import net.i2p.data.Base64;
import net.i2p.data.DataHelper;
public class SearchServlet extends HttpServlet {
private SearchManager searchManager;
@ -45,6 +48,29 @@ public class SearchServlet extends HttpServlet {
total += s.size();
}
sb.append("<Results>").append(total).append("</Results>");
sb.append("<ResultsBySender>");
bySender.forEach((sender, resultsFromSender) -> {
sb.append("<ResultsFromSender>");
sb.append("<Sender>");
sb.append(sender.getHumanReadableName());
sb.append("</Sender>");
resultsFromSender.forEach(result -> {
sb.append("<Result>");
sb.append("<Name>");
sb.append(result.getName());
sb.append("</Name>");
sb.append("<Size>");
sb.append(DataHelper.formatSize2Decimal(result.getSize(), false)).append("B");
sb.append("</Size>");
String infohash = Base64.encode(result.getInfohash().getRoot());
sb.append("<InfoHash>");
sb.append(infohash);
sb.append("</InfoHash>");
sb.append("</Result>");
});
sb.append("</ResultsFromSender>");
});
sb.append("</ResultsBySender>");
sb.append("</Search>");
}
sb.append("</Searches>");

View File

@ -64,6 +64,8 @@
</table>
<script>
var uuid = null;
var sender = null;
var lastXML = null;
function refreshConnectionsCount() {
var xmlhttp = new XMLHttpRequest();
@ -80,9 +82,27 @@
xmlhttp.send();
}
function updateSender(senderName) {
sender = senderName;
// TODO: update results table
}
function updateUUID(resultUUID) {
uuid = resultUUID;
// TODO: update results table
var resultsDiv = document.getElementById("results");
var table = "<table><tr><th>Sender</th></tr>";
var x = lastXML.getElementsByTagName("ResultsBySender");
x = x[0].getElementsByTagName("ResultsFromSender");
var i;
for (i = 0; i < x.length; i++) {
var senderName = x[i].getElementsByTagName("Sender")[0].childNodes[0].nodeValue;
table += "<tr><td><a href='#' onclick='updateSender(\""+senderName+"\");return false;'>"
table += senderName;
table += "</a></td></tr>";
}
table += "</table>";
if (x.length > 0)
resultsDiv.innerHTML = table;
}
function refreshActiveSearches() {
@ -90,13 +110,14 @@
xmlhttp.onreadystatechange = function () {
if (this.readyState == 4 && this.status == 200) {
var xmlDoc = this.responseXML;
lastXML = xmlDoc;
var i;
var table = "<table><tr><th>Search</th><th>Senders</th><th>Results</th></tr>";
var activeSearchesDiv = document.getElementById("activeSearches");
var x = xmlDoc.getElementsByTagName("Search");
for (i = 0; i < x.length; i ++) {
var resultUUID = x[i].getElementsByTagName("uuid")[0].childNodes[0].nodeValue;
table += "<tr><td><a href='#' onclick='updateUUID(resultUUID);return false;'>"
table += "<tr><td><a href='#' onclick='updateUUID(\"" + resultUUID+ "\");return false;'>"
table += x[i].getElementsByTagName("Query")[0].childNodes[0].nodeValue;
table += "</a></td><td>";
table += x[i].getElementsByTagName("Senders")[0].childNodes[0].nodeValue;
@ -105,8 +126,11 @@
table += "</td></tr>"
}
table += "</table>"
if (x.length > 0)
if (x.length > 0)
activeSearchesDiv.innerHTML = table;
if (uuid != null)
updateUUID(uuid);
}
}
xmlhttp.open("GET", "/MuWire/Search?section=activeSearches", true);