add display of search results grouped by sender

pull/34/head
Zlatin Balevsky 2019-11-30 19:54:50 +00:00
parent 2b8bd8144f
commit a2022415c2
2 changed files with 51 additions and 16 deletions

View File

@ -87,8 +87,8 @@ class SearchManager {
}
}
Iterable<SearchResults> getSearches() {
return results.values();
public Map<UUID,SearchResults> getResults() {
return results;
}
public void onUIResultBatchEvent(UIResultBatchEvent e) {

View File

@ -1,10 +1,11 @@
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ page import="java.io.File" %>
<%@ page import="java.io.*" %>
<%@ page import="java.util.*" %>
<%@ page import="com.muwire.webui.*" %>
<%@ page import="com.muwire.core.*" %>
<%@ page import="com.muwire.core.search.*" %>
<%@ page import="net.i2p.data.Base64" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
@ -30,22 +31,56 @@
</form>
<hr/>
Active Searches:<br/>
<%
SearchManager searchManager = (SearchManager) client.getServletContext().getAttribute("searchManager");
for (SearchResults results : searchManager.getSearches()) {
out.print(results.getSearch());
out.print(" senders: ");
Map<Persona, Set<UIResultEvent>> bySender = results.getBySender();
out.print(bySender.size());
int total = 0;
for (Set<UIResultEvent> s : bySender.values()) {
total += s.size();
if (request.getParameter("uuid") == null) {
out.print("Active Searches<br/>");
for (SearchResults results : searchManager.getResults().values()) {
StringBuilder sb = new StringBuilder();
sb.append(results.getSearch());
sb.append(" senders: ");
Map<Persona, Set<UIResultEvent>> bySender = results.getBySender();
sb.append(bySender.size());
int total = 0;
for (Set<UIResultEvent> s : bySender.values()) {
total += s.size();
}
sb.append(" results: ");
sb.append(total);
out.print("<a href='/MuWire/Home.jsp?uuid="+results.getUUID()+"'>"+sb.toString()+"</a><br/>");
}
out.print(" results: ");
out.print(total);
out.print("<br/>");
} else if (request.getParameter("sender") == null) {
UUID uuid = UUID.fromString(request.getParameter("uuid"));
SearchResults results = searchManager.getResults().get(uuid);
out.print("Results for "+results.getSearch()+"<br/>");
Map<Persona, Set<UIResultEvent>> bySender = results.getBySender();
for (Persona sender : bySender.keySet()) {
StringBuilder sb = new StringBuilder();
sb.append(sender.getHumanReadableName());
sb.append(" count: ");
sb.append(bySender.get(sender).size());
String link = "/MuWire/Home.jsp?uuid="+uuid.toString()+"&sender="+sender.toBase64();
out.print("<a href='"+link+"'>"+sb.toString()+"</a><br/>");
}
} else {
UUID uuid = UUID.fromString(request.getParameter("uuid"));
SearchResults searchResults = searchManager.getResults().get(uuid);
String senderB64 = request.getParameter("sender");
Persona sender = new Persona(new ByteArrayInputStream(Base64.decode(senderB64)));
Set<UIResultEvent> results = searchResults.getBySender().get(sender);
StringBuilder sb = new StringBuilder();
results.forEach(result -> {
sb.append(result.getName()).append(" size: ").append(result.getSize()).append("</br>");
});
out.print(sb.toString());
}
%>