From 3314a0f1b0c1bf63f4deff7aed4cd7e673784ef1 Mon Sep 17 00:00:00 2001 From: JesterDev <105895386+jstrdev@users.noreply.github.com> Date: Fri, 16 Oct 2026 19:06:32 +0200 Subject: [PATCH] Version 1.18.0 --- __pycache__/engine.cpython-315.pyc | Bin 0 -> 110914 bytes app.py | 25 ++++++++++++++++++++++++- engine.py | 11 ++++++++--- web/index.html | 5 +++-- 4 files changed, 35 insertions(+), 6 deletions(-) create mode 100644 __pycache__/engine.cpython-315.pyc diff --git a/__pycache__/engine.cpython-315.pyc b/__pycache__/engine.cpython-315.pyc new file mode 100644 index 0000000000000000000000000000000000000000..df4546e2f2378b32d0e2b3ef00cedc39f3752712 GIT binary patch literal 110914 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

QE|6dh3W~%qP<+)CA9+sk5M~ob{YD{XQeL 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 literal 0 HcmV?d00001 diff --git a/app.py b/app.py index e235c98..439d537 100644 --- a/app.py +++ b/app.py @@ -721,15 +721,38 @@ def fm_delete(paths): if p.count("/") < 2: raise E.PipeError("Por seguridad no borro carpetas de primer nivel (%s)" % p) + def free_now(): + try: + return int(bf._req("GET", "/api/fs/stat", {"path": paths[0].rsplit("/", 1)[0] or "/"}, + timeout=8).get("availableBytes") or 0) + except Exception: + return None + def work(): + start = free_now() + last = {"t": 0.0} + + def tick(): + # Borrar un juego grande tarda: ensenamos lo que se va liberando para que se vea que avanza + if start is None or time.time() - last["t"] < 3: + return + last["t"] = time.time() + now = free_now() + if now is not None: + with LOCK: + FMOP["bytes_done"] = max(0, now - start) + FMOP["message"] = "" for i, p in enumerate(paths): if FM_CANCEL.is_set(): raise E.Cancelled() with LOCK: FMOP.update(current=p, items_done=i) - bf.delete(p, FM_CANCEL) + bf.delete(p, FM_CANCEL, on_tick=tick) + tick() with LOCK: FMOP["items_done"] = len(paths) + if FMOP["bytes_done"]: + FMOP["message"] = "Hecho: liberados %s" % human(FMOP["bytes_done"]) _fm_start("delete", len(paths), work) diff --git a/engine.py b/engine.py index c237072..e3a220e 100644 --- a/engine.py +++ b/engine.py @@ -1257,11 +1257,16 @@ class BFpilot: except Exception: return "" - def wait_job(self, cancel, timeout=3600): + def wait_job(self, cancel, timeout=3600, on_tick=None): t0 = time.time() while time.time() - t0 < timeout: if cancel is not None and cancel.is_set(): raise Cancelled() + if on_tick is not None: + try: + on_tick() + except Exception: + pass j = self._req("GET", "/api/fs/job/status") if not j.get("busy"): if j.get("error"): @@ -1270,7 +1275,7 @@ class BFpilot: time.sleep(1) raise PipeError("BFpilot tarda demasiado") - def delete(self, path, cancel=None): + def delete(self, path, cancel=None, on_tick=None): for _ in range(60): try: self._req("POST", "/api/fs/delete", form={"path": path, "recursive": "1"}) @@ -1282,7 +1287,7 @@ class BFpilot: if "No such file" in str(e) or "not found" in str(e).lower(): return raise - self.wait_job(cancel) + self.wait_job(cancel, timeout=4 * 3600, on_tick=on_tick) def du(self, path, timeout=20): """Tamano total de una carpeta (o archivo), o None.""" diff --git a/web/index.html b/web/index.html index 90f71ba..6e2521b 100644 --- a/web/index.html +++ b/web/index.html @@ -404,7 +404,7 @@ tr:hover .rowact{opacity:1}