mirror of
https://github.com/9001/copyparty.git
synced 2025-09-28 12:42:26 -06:00
parent
74821a38ad
commit
96b109b0d6
|
@ -1695,7 +1695,7 @@ class Up2k(object):
|
||||||
|
|
||||||
t = "reindex %r => %r mtime(%s/%s) size(%s/%s)"
|
t = "reindex %r => %r mtime(%s/%s) size(%s/%s)"
|
||||||
self.log(t % (top, rp, dts, lmod, dsz, sz))
|
self.log(t % (top, rp, dts, lmod, dsz, sz))
|
||||||
self.db_rm(db.c, rd, fn, 0)
|
self.db_rm(db.c, e_d, rd, fn, 0)
|
||||||
tfa += 1
|
tfa += 1
|
||||||
db.n += 1
|
db.n += 1
|
||||||
in_db = []
|
in_db = []
|
||||||
|
@ -1792,7 +1792,7 @@ class Up2k(object):
|
||||||
rm_files = [x for x in hits if x not in seen_files]
|
rm_files = [x for x in hits if x not in seen_files]
|
||||||
n_rm = len(rm_files)
|
n_rm = len(rm_files)
|
||||||
for fn in rm_files:
|
for fn in rm_files:
|
||||||
self.db_rm(db.c, rd, fn, 0)
|
self.db_rm(db.c, e_d, rd, fn, 0)
|
||||||
|
|
||||||
if n_rm:
|
if n_rm:
|
||||||
self.log("forgot {} deleted files".format(n_rm))
|
self.log("forgot {} deleted files".format(n_rm))
|
||||||
|
@ -3143,7 +3143,7 @@ class Up2k(object):
|
||||||
for cur, dp_dir, dp_fn in lost:
|
for cur, dp_dir, dp_fn in lost:
|
||||||
t = "forgetting desynced db entry: %r"
|
t = "forgetting desynced db entry: %r"
|
||||||
self.log(t % ("/" + vjoin(vjoin(vfs.vpath, dp_dir), dp_fn)))
|
self.log(t % ("/" + vjoin(vjoin(vfs.vpath, dp_dir), dp_fn)))
|
||||||
self.db_rm(cur, dp_dir, dp_fn, cj["size"])
|
self.db_rm(cur, vfs.flags, dp_dir, dp_fn, cj["size"])
|
||||||
if c2 and c2 != cur:
|
if c2 and c2 != cur:
|
||||||
c2.connection.commit()
|
c2.connection.commit()
|
||||||
|
|
||||||
|
@ -3473,7 +3473,7 @@ class Up2k(object):
|
||||||
vrel = vjoin(job["prel"], fname)
|
vrel = vjoin(job["prel"], fname)
|
||||||
xlink = bool(vf.get("xlink"))
|
xlink = bool(vf.get("xlink"))
|
||||||
cur, wark, _, _, _, _, _ = self._find_from_vpath(ptop, vrel)
|
cur, wark, _, _, _, _, _ = self._find_from_vpath(ptop, vrel)
|
||||||
self._forget_file(ptop, vrel, cur, wark, True, st.st_size, xlink)
|
self._forget_file(ptop, vrel, vf, cur, wark, True, st.st_size, xlink)
|
||||||
except Exception as ex:
|
except Exception as ex:
|
||||||
self.log("skipping replace-relink: %r" % (ex,))
|
self.log("skipping replace-relink: %r" % (ex,))
|
||||||
finally:
|
finally:
|
||||||
|
@ -3887,7 +3887,9 @@ class Up2k(object):
|
||||||
|
|
||||||
return True
|
return True
|
||||||
|
|
||||||
def db_rm(self, db: "sqlite3.Cursor", rd: str, fn: str, sz: int) -> None:
|
def db_rm(
|
||||||
|
self, db: "sqlite3.Cursor", vflags: dict[str, Any], rd: str, fn: str, sz: int
|
||||||
|
) -> None:
|
||||||
sql = "delete from up where rd = ? and fn = ?"
|
sql = "delete from up where rd = ? and fn = ?"
|
||||||
try:
|
try:
|
||||||
r = db.execute(sql, (rd, fn))
|
r = db.execute(sql, (rd, fn))
|
||||||
|
@ -3895,9 +3897,22 @@ class Up2k(object):
|
||||||
assert self.mem_cur # !rm
|
assert self.mem_cur # !rm
|
||||||
r = db.execute(sql, s3enc(self.mem_cur, rd, fn))
|
r = db.execute(sql, s3enc(self.mem_cur, rd, fn))
|
||||||
|
|
||||||
if r.rowcount:
|
if not r.rowcount:
|
||||||
self.volsize[db] -= sz
|
return
|
||||||
self.volnfiles[db] -= 1
|
|
||||||
|
self.volsize[db] -= sz
|
||||||
|
self.volnfiles[db] -= 1
|
||||||
|
|
||||||
|
if "nodirsz" not in vflags:
|
||||||
|
try:
|
||||||
|
q = "update ds set nf=nf-1, sz=sz-? where rd=?"
|
||||||
|
while True:
|
||||||
|
db.execute(q, (sz, rd))
|
||||||
|
if not rd:
|
||||||
|
break
|
||||||
|
rd = rd.rsplit("/", 1)[0] if "/" in rd else ""
|
||||||
|
except:
|
||||||
|
pass
|
||||||
|
|
||||||
def db_add(
|
def db_add(
|
||||||
self,
|
self,
|
||||||
|
@ -3918,7 +3933,7 @@ class Up2k(object):
|
||||||
skip_xau: bool = False,
|
skip_xau: bool = False,
|
||||||
) -> None:
|
) -> None:
|
||||||
"""mutex(main) me"""
|
"""mutex(main) me"""
|
||||||
self.db_rm(db, rd, fn, sz)
|
self.db_rm(db, vflags, rd, fn, sz)
|
||||||
|
|
||||||
if not ip:
|
if not ip:
|
||||||
db_ip = ""
|
db_ip = ""
|
||||||
|
@ -4201,7 +4216,7 @@ class Up2k(object):
|
||||||
xlink = bool(dbv.flags.get("xlink"))
|
xlink = bool(dbv.flags.get("xlink"))
|
||||||
cur, wark, _, _, _, _, _ = self._find_from_vpath(ptop, volpath)
|
cur, wark, _, _, _, _, _ = self._find_from_vpath(ptop, volpath)
|
||||||
self._forget_file(
|
self._forget_file(
|
||||||
ptop, volpath, cur, wark, True, st.st_size, xlink
|
ptop, volpath, dbv.flags, cur, wark, True, st.st_size, xlink
|
||||||
)
|
)
|
||||||
finally:
|
finally:
|
||||||
if cur:
|
if cur:
|
||||||
|
@ -4659,7 +4674,14 @@ class Up2k(object):
|
||||||
|
|
||||||
with self.reg_mutex:
|
with self.reg_mutex:
|
||||||
has_dupes = self._forget_file(
|
has_dupes = self._forget_file(
|
||||||
svn.realpath, srem, c1, w, is_xvol, fsize_ or fsize, xlink
|
svn.realpath,
|
||||||
|
srem,
|
||||||
|
svn.flags,
|
||||||
|
c1,
|
||||||
|
w,
|
||||||
|
is_xvol,
|
||||||
|
fsize_ or fsize,
|
||||||
|
xlink,
|
||||||
)
|
)
|
||||||
|
|
||||||
if not is_xvol:
|
if not is_xvol:
|
||||||
|
@ -4804,6 +4826,7 @@ class Up2k(object):
|
||||||
self,
|
self,
|
||||||
ptop: str,
|
ptop: str,
|
||||||
vrem: str,
|
vrem: str,
|
||||||
|
vflags: dict[str, Any],
|
||||||
cur: Optional["sqlite3.Cursor"],
|
cur: Optional["sqlite3.Cursor"],
|
||||||
wark: Optional[str],
|
wark: Optional[str],
|
||||||
drop_tags: bool,
|
drop_tags: bool,
|
||||||
|
@ -4828,7 +4851,7 @@ class Up2k(object):
|
||||||
q = "delete from mt where w=?"
|
q = "delete from mt where w=?"
|
||||||
cur.execute(q, (wark[:16],))
|
cur.execute(q, (wark[:16],))
|
||||||
|
|
||||||
self.db_rm(cur, srd, sfn, sz)
|
self.db_rm(cur, vflags, srd, sfn, sz)
|
||||||
|
|
||||||
reg = self.registry.get(ptop)
|
reg = self.registry.get(ptop)
|
||||||
if reg:
|
if reg:
|
||||||
|
|
Loading…
Reference in a new issue