mirror of
https://github.com/9001/copyparty.git
synced 2025-08-18 01:22:13 -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("/")
|
vp = join(self.cwd, path).lstrip("/")
|
||||||
try:
|
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:
|
except Exception as ex:
|
||||||
raise FilesystemError(str(ex))
|
raise FilesystemError(str(ex))
|
||||||
|
|
||||||
|
|
|
@ -2386,7 +2386,10 @@ class HttpCli(object):
|
||||||
if not req:
|
if not req:
|
||||||
req = [self.vpath]
|
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())
|
self.loud_reply(x.get())
|
||||||
return True
|
return True
|
||||||
|
|
||||||
|
|
|
@ -371,7 +371,7 @@ class Up2k(object):
|
||||||
if vp:
|
if vp:
|
||||||
fvp = "{}/{}".format(vp, fvp)
|
fvp = "{}/{}".format(vp, fvp)
|
||||||
|
|
||||||
self._handle_rm(LEELOO_DALLAS, "", fvp)
|
self._handle_rm(LEELOO_DALLAS, "", fvp, [])
|
||||||
nrm += 1
|
nrm += 1
|
||||||
|
|
||||||
if nrm:
|
if nrm:
|
||||||
|
@ -2426,12 +2426,16 @@ class Up2k(object):
|
||||||
v = (wark, int(ts), sz, rd, fn, ip or "", int(at or 0))
|
v = (wark, int(ts), sz, rd, fn, ip or "", int(at or 0))
|
||||||
db.execute(sql, v)
|
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
|
n_files = 0
|
||||||
ok = {}
|
ok = {}
|
||||||
ng = {}
|
ng = {}
|
||||||
for vp in vpaths:
|
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
|
n_files += a
|
||||||
for k in b:
|
for k in b:
|
||||||
ok[k] = 1
|
ok[k] = 1
|
||||||
|
@ -2445,7 +2449,7 @@ class Up2k(object):
|
||||||
return "deleted {} files (and {}/{} folders)".format(n_files, iok, iok + ing)
|
return "deleted {} files (and {}/{} folders)".format(n_files, iok, iok + ing)
|
||||||
|
|
||||||
def _handle_rm(
|
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]]:
|
) -> tuple[int, list[str], list[str]]:
|
||||||
self.db_act = time.time()
|
self.db_act = time.time()
|
||||||
try:
|
try:
|
||||||
|
@ -2504,6 +2508,12 @@ class Up2k(object):
|
||||||
n_files = 0
|
n_files = 0
|
||||||
for dbv, vrem, _, adir, files, rd, vd in g:
|
for dbv, vrem, _, adir, files, rd, vd in g:
|
||||||
for fn in [x[0] for x in files]:
|
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
|
n_files += 1
|
||||||
abspath = os.path.join(adir, fn)
|
abspath = os.path.join(adir, fn)
|
||||||
volpath = "{}/{}".format(vrem, fn).strip("/")
|
volpath = "{}/{}".format(vrem, fn).strip("/")
|
||||||
|
|
|
@ -6428,7 +6428,7 @@ var unpost = (function () {
|
||||||
var xhr = new XHR();
|
var xhr = new XHR();
|
||||||
xhr.n = n;
|
xhr.n = n;
|
||||||
xhr.n2 = n2;
|
xhr.n2 = n2;
|
||||||
xhr.open('POST', '/?delete', true);
|
xhr.open('POST', '/?delete&lim=1', true);
|
||||||
xhr.onload = xhr.onerror = unpost_delete_cb;
|
xhr.onload = xhr.onerror = unpost_delete_cb;
|
||||||
xhr.send(JSON.stringify(req));
|
xhr.send(JSON.stringify(req));
|
||||||
};
|
};
|
||||||
|
|
Loading…
Reference in a new issue