diff --git a/bin/u2c.py b/bin/u2c.py index c707fc57..6a6f3156 100755 --- a/bin/u2c.py +++ b/bin/u2c.py @@ -1,8 +1,8 @@ #!/usr/bin/env python3 from __future__ import print_function, unicode_literals -S_VERSION = "2.14" -S_BUILD_DT = "2025-10-24" +S_VERSION = "2.15" +S_BUILD_DT = "2025-10-25" """ u2c.py: upload to copyparty @@ -232,6 +232,7 @@ class HCli(object): MJ = "application/json" MO = "application/octet-stream" +MM = "application/x-www-form-urlencoded" CLEN = "Content-Length" web = None # type: HCli @@ -979,6 +980,7 @@ class Ctl(object): self.nfiles, self.nbytes = self.stats self.filegen = walkdirs([], ar.files, ar.x) self.recheck = [] # type: list[File] + self.last_file = None if ar.safe: self._safe() @@ -1015,6 +1017,11 @@ class Ctl(object): self._fancy() + file = self.last_file + if self.up_br and file: + zs = quotep(file.name.encode("utf-8", WTF8)) + web.req("POST", file.url, {}, b"msg=upload-queue-empty;" + zs, MM) + self.ok = not self.errs def _safe(self): @@ -1453,6 +1460,7 @@ class Ctl(object): file = fsl.file cids = fsl.cids + self.last_file = file with self.mutex: if not self.uploader_busy: diff --git a/copyparty/web/up2k.js b/copyparty/web/up2k.js index 1e47c354..d4dd375d 100644 --- a/copyparty/web/up2k.js +++ b/copyparty/web/up2k.js @@ -1999,6 +1999,18 @@ function up2k_init(subtle) { if (pvis.act == 'bz') pvis.changecard('bz'); + + var n = st.files.length - 1, + f = n >= 0 && st.files[n]; + if (f && !f.srch) { + var xhr = new XHR(), + ct = 'application/x-www-form-urlencoded;charset=UTF-8'; + xhr.open('POST', f.purl, true); + xhr.setRequestHeader('Content-Type', ct); + if (xhr.overrideMimeType) + xhr.overrideMimeType('Content-Type', ct); + xhr.send('msg=upload-queue-empty;' + uricom_enc(f.name)); + } } function chill(t) { @@ -2671,8 +2683,6 @@ function up2k_init(subtle) { f2f(spd1, 2), !isNum(spd2) ? '--' : f2f(spd2, 2))); pvis.move(t.n, 'ok'); - if (!pvis.ctr.bz && !pvis.ctr.q) - uptoast(); } else { if (t.t_uploaded)