From 5389ee056a46b3bfeb84839277f7d24277e033e2 Mon Sep 17 00:00:00 2001 From: zzz <zzz@mail.i2p> Date: Wed, 6 Oct 2010 02:05:26 +0000 Subject: [PATCH] sort snark peers by completion % --- .../org/klomp/snark/web/I2PSnarkServlet.java | 21 +++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) diff --git a/apps/i2psnark/java/src/org/klomp/snark/web/I2PSnarkServlet.java b/apps/i2psnark/java/src/org/klomp/snark/web/I2PSnarkServlet.java index ea1325e188..3b7c507029 100644 --- a/apps/i2psnark/java/src/org/klomp/snark/web/I2PSnarkServlet.java +++ b/apps/i2psnark/java/src/org/klomp/snark/web/I2PSnarkServlet.java @@ -8,6 +8,7 @@ import java.io.PrintWriter; import java.text.Collator; import java.util.ArrayList; import java.util.Arrays; +import java.util.Collections; import java.util.Comparator; import java.util.Enumeration; import java.util.Iterator; @@ -821,10 +822,9 @@ public class I2PSnarkServlet extends Default { out.write("</td>\n</tr>\n"); if(showPeers && isRunning && curPeers > 0) { - List peers = snark.coordinator.peerList(); - Iterator it = peers.iterator(); - while (it.hasNext()) { - Peer peer = (Peer)it.next(); + List<Peer> peers = snark.coordinator.peerList(); + Collections.sort(peers, new PeerComparator()); + for (Peer peer : peers) { if (!peer.isConnected()) continue; out.write("<tr class=\"" + rowClass + "\">"); @@ -908,6 +908,19 @@ public class I2PSnarkServlet extends Default { } } + /** + * Sort by completeness (seeds first), then by ID + * @since 0.8.1 + */ + private static class PeerComparator implements Comparator<Peer> { + public int compare(Peer l, Peer r) { + int diff = r.completed() - l.completed(); // reverse + if (diff != 0) + return diff; + return l.toString().substring(5, 9).compareTo(r.toString().substring(5, 9)); + } + } + private void writeAddForm(PrintWriter out, HttpServletRequest req) throws IOException { String uri = req.getRequestURI(); String newURL = req.getParameter("newURL"); -- GitLab