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);