mirror of
https://github.com/9001/copyparty.git
synced 2025-08-17 09:02:15 -06:00
add unpost sanchk
This commit is contained in:
parent
c7deb63a04
commit
78fa96f0f4
|
@ -204,7 +204,7 @@ class FtpFs(AbstractedFS):
|
|||
|
||||
vp = join(self.cwd, path).lstrip("/")
|
||||
try:
|
||||
self.hub.up2k.handle_rm(self.uname, self.h.remote_ip, [vp])
|
||||
self.hub.up2k.handle_rm(self.uname, self.h.remote_ip, [vp], [])
|
||||
except Exception as ex:
|
||||
raise FilesystemError(str(ex))
|
||||
|
||||
|
|
|
@ -2386,7 +2386,10 @@ class HttpCli(object):
|
|||
if not req:
|
||||
req = [self.vpath]
|
||||
|
||||
x = self.conn.hsrv.broker.ask("up2k.handle_rm", self.uname, self.ip, req)
|
||||
nlim = int(self.uparam.get("lim") or 0)
|
||||
lim = [nlim, nlim] if nlim else []
|
||||
|
||||
x = self.conn.hsrv.broker.ask("up2k.handle_rm", self.uname, self.ip, req, lim)
|
||||
self.loud_reply(x.get())
|
||||
return True
|
||||
|
||||
|
|
|
@ -371,7 +371,7 @@ class Up2k(object):
|
|||
if vp:
|
||||
fvp = "{}/{}".format(vp, fvp)
|
||||
|
||||
self._handle_rm(LEELOO_DALLAS, "", fvp)
|
||||
self._handle_rm(LEELOO_DALLAS, "", fvp, [])
|
||||
nrm += 1
|
||||
|
||||
if nrm:
|
||||
|
@ -2426,12 +2426,16 @@ class Up2k(object):
|
|||
v = (wark, int(ts), sz, rd, fn, ip or "", int(at or 0))
|
||||
db.execute(sql, v)
|
||||
|
||||
def handle_rm(self, uname: str, ip: str, vpaths: list[str]) -> str:
|
||||
def handle_rm(self, uname: str, ip: str, vpaths: list[str], lim: list[int]) -> str:
|
||||
n_files = 0
|
||||
ok = {}
|
||||
ng = {}
|
||||
for vp in vpaths:
|
||||
a, b, c = self._handle_rm(uname, ip, vp)
|
||||
if lim and lim[0] <= 0:
|
||||
self.log("hit delete limit of {} files".format(lim[1]), 3)
|
||||
break
|
||||
|
||||
a, b, c = self._handle_rm(uname, ip, vp, lim)
|
||||
n_files += a
|
||||
for k in b:
|
||||
ok[k] = 1
|
||||
|
@ -2445,7 +2449,7 @@ class Up2k(object):
|
|||
return "deleted {} files (and {}/{} folders)".format(n_files, iok, iok + ing)
|
||||
|
||||
def _handle_rm(
|
||||
self, uname: str, ip: str, vpath: str
|
||||
self, uname: str, ip: str, vpath: str, lim: list[int]
|
||||
) -> tuple[int, list[str], list[str]]:
|
||||
self.db_act = time.time()
|
||||
try:
|
||||
|
@ -2504,6 +2508,12 @@ class Up2k(object):
|
|||
n_files = 0
|
||||
for dbv, vrem, _, adir, files, rd, vd in g:
|
||||
for fn in [x[0] for x in files]:
|
||||
if lim:
|
||||
lim[0] -= 1
|
||||
if lim[0] < 0:
|
||||
self.log("hit delete limit of {} files".format(lim[1]), 3)
|
||||
break
|
||||
|
||||
n_files += 1
|
||||
abspath = os.path.join(adir, fn)
|
||||
volpath = "{}/{}".format(vrem, fn).strip("/")
|
||||
|
|
|
@ -6428,7 +6428,7 @@ var unpost = (function () {
|
|||
var xhr = new XHR();
|
||||
xhr.n = n;
|
||||
xhr.n2 = n2;
|
||||
xhr.open('POST', '/?delete', true);
|
||||
xhr.open('POST', '/?delete&lim=1', true);
|
||||
xhr.onload = xhr.onerror = unpost_delete_cb;
|
||||
xhr.send(JSON.stringify(req));
|
||||
};
|
||||
|
|
Loading…
Reference in a new issue