diff --git a/copyparty/up2k.py b/copyparty/up2k.py index 2e3a8e1a..ca1c77b9 100644 --- a/copyparty/up2k.py +++ b/copyparty/up2k.py @@ -1119,6 +1119,7 @@ def register_vpath( reg = {} drp = None emptylist = [] + dotpart = "." if self.args.dotpart else "" snap = os.path.join(histpath, "up2k.snap") if bos.path.exists(snap): with gzip.GzipFile(snap, "rb") as f: @@ -1131,6 +1132,8 @@ def register_vpath( except: pass + reg = reg2 # diff-golf + if reg2 and "dwrk" not in reg2[next(iter(reg2))]: for job in reg2.values(): job["dwrk"] = job["wark"] @@ -1138,7 +1141,8 @@ def register_vpath( rm = [] for k, job in reg2.items(): job["ptop"] = ptop - if "done" in job: + is_done = "done" in job + if is_done: job["need"] = job["hash"] = emptylist else: if "need" not in job: @@ -1146,10 +1150,13 @@ def register_vpath( if "hash" not in job: job["hash"] = [] - fp = djoin(ptop, job["prel"], job["name"]) + if is_done: + fp = djoin(ptop, job["prel"], job["name"]) + else: + fp = djoin(ptop, job["prel"], dotpart + job["name"] + ".PARTIAL") + if bos.path.exists(fp): - reg[k] = job - if "done" in job: + if is_done: continue job["poke"] = time.time() job["busy"] = {}