diff --git a/copyparty/u2idx.py b/copyparty/u2idx.py
index 3da30bfc..e535aaa2 100644
--- a/copyparty/u2idx.py
+++ b/copyparty/u2idx.py
@@ -6,6 +6,7 @@ import os
import time
import threading
from datetime import datetime
+from operator import itemgetter
from .__init__ import ANYWIN, unicode
from .util import absreal, s3dec, Pebkac, min_ex, gen_filekey, quotep
@@ -292,9 +293,13 @@ class U2idx(object):
# undupe hits from multiple metadata keys
if len(ret) > 1:
ret = [ret[0]] + [
- y for x, y in zip(ret[:-1], ret[1:]) if x["rp"] != y["rp"]
+ y
+ for x, y in zip(ret[:-1], ret[1:])
+ if x["rp"].split("?")[0] != y["rp"].split("?")[0]
]
+ ret.sort(key=itemgetter("rp"))
+
return ret, list(taglist.keys())
def terminator(self, identifier, done_flag):
diff --git a/copyparty/web/up2k.js b/copyparty/web/up2k.js
index b182b0f1..ab0327b1 100644
--- a/copyparty/web/up2k.js
+++ b/copyparty/web/up2k.js
@@ -1560,15 +1560,18 @@ function up2k_init(subtle) {
}
else {
smsg = 'found';
- var hit = response.hits[0],
- msg = linksplit(hit.rp).join(''),
- tr = unix2iso(hit.ts),
- tu = unix2iso(t.lmod),
- diff = parseInt(t.lmod) - parseInt(hit.ts),
- cdiff = (Math.abs(diff) <= 2) ? '3c0' : 'f0b',
- sdiff = 'diff ' + diff;
+ var msg = [];
+ for (var a = 0, aa = Math.min(20, response.hits.length); a < aa; a++) {
+ var hit = response.hits[a],
+ tr = unix2iso(hit.ts),
+ tu = unix2iso(t.lmod),
+ diff = parseInt(t.lmod) - parseInt(hit.ts),
+ cdiff = (Math.abs(diff) <= 2) ? '3c0' : 'f0b',
+ sdiff = 'diff ' + diff;
- msg += '
' + tr + ' (srv), ' + tu + ' (You), ' + sdiff + '';
+ msg.push(linksplit(hit.rp).join('') + '
' + tr + ' (srv), ' + tu + ' (You), ' + sdiff + '');
+ }
+ msg = msg.join('
\n');
}
pvis.seth(t.n, 2, msg);
pvis.seth(t.n, 1, smsg);