don't alias randomized filenames
This commit is contained in:
parent
190ccee820
commit
2b644fa81b
@ -2028,6 +2028,7 @@ class Up2k(object):
|
|||||||
reg = self.registry[ptop]
|
reg = self.registry[ptop]
|
||||||
vfs = self.asrv.vfs.all_vols[cj["vtop"]]
|
vfs = self.asrv.vfs.all_vols[cj["vtop"]]
|
||||||
n4g = vfs.flags.get("noforget")
|
n4g = vfs.flags.get("noforget")
|
||||||
|
rand = vfs.flags.get("rand") or cj.get("rand")
|
||||||
lost: list[tuple["sqlite3.Cursor", str, str]] = []
|
lost: list[tuple["sqlite3.Cursor", str, str]] = []
|
||||||
|
|
||||||
vols = [(ptop, jcur)] if jcur else []
|
vols = [(ptop, jcur)] if jcur else []
|
||||||
@ -2095,10 +2096,6 @@ class Up2k(object):
|
|||||||
if alts:
|
if alts:
|
||||||
best = sorted(alts, reverse=True)[0]
|
best = sorted(alts, reverse=True)[0]
|
||||||
job = best[2]
|
job = best[2]
|
||||||
if best[0] == 5 and vfs.flags.get("rand") or cj.get("rand"):
|
|
||||||
# filenames are randomized; found dupe in same folder;
|
|
||||||
# perfect! return the original file
|
|
||||||
cj["name"] = job["name"]
|
|
||||||
else:
|
else:
|
||||||
job = None
|
job = None
|
||||||
|
|
||||||
@ -2172,11 +2169,11 @@ class Up2k(object):
|
|||||||
# symlink to the client-provided name,
|
# symlink to the client-provided name,
|
||||||
# returning the previous upload info
|
# returning the previous upload info
|
||||||
job = deepcopy(job)
|
job = deepcopy(job)
|
||||||
for k in ["ptop", "vtop", "prel"]:
|
for k in "ptop vtop prel addr".split():
|
||||||
job[k] = cj[k]
|
job[k] = cj[k]
|
||||||
|
|
||||||
pdir = djoin(cj["ptop"], cj["prel"])
|
pdir = djoin(cj["ptop"], cj["prel"])
|
||||||
if vfs.flags.get("rand") or cj.get("rand"):
|
if rand:
|
||||||
job["name"] = rand_name(
|
job["name"] = rand_name(
|
||||||
pdir, cj["name"], vfs.flags["nrand"]
|
pdir, cj["name"], vfs.flags["nrand"]
|
||||||
)
|
)
|
||||||
@ -2185,23 +2182,24 @@ class Up2k(object):
|
|||||||
|
|
||||||
dst = os.path.join(job["ptop"], job["prel"], job["name"])
|
dst = os.path.join(job["ptop"], job["prel"], job["name"])
|
||||||
if not self.args.nw:
|
if not self.args.nw:
|
||||||
bos.unlink(dst) # TODO ed pls
|
|
||||||
try:
|
try:
|
||||||
dst_flags = self.flags[job["ptop"]]
|
dvf = self.flags[job["ptop"]]
|
||||||
self._symlink(src, dst, dst_flags, lmod=cj["lmod"])
|
self._symlink(src, dst, dvf, lmod=cj["lmod"], rm=True)
|
||||||
except:
|
except:
|
||||||
|
if bos.path.exists(dst):
|
||||||
|
bos.unlink(dst)
|
||||||
if not n4g:
|
if not n4g:
|
||||||
raise
|
raise
|
||||||
|
|
||||||
if cur:
|
if cur:
|
||||||
a = [cj[x] for x in "prel name lmod size addr".split()]
|
a = [job[x] for x in "prel name lmod size addr".split()]
|
||||||
a += [cj.get("at") or time.time()]
|
a += [job.get("at") or time.time()]
|
||||||
self.db_add(cur, wark, *a)
|
self.db_add(cur, wark, *a)
|
||||||
cur.connection.commit()
|
cur.connection.commit()
|
||||||
|
|
||||||
if not job:
|
if not job:
|
||||||
ap1 = djoin(cj["ptop"], cj["prel"])
|
ap1 = djoin(cj["ptop"], cj["prel"])
|
||||||
if vfs.flags.get("rand") or cj.get("rand"):
|
if rand:
|
||||||
cj["name"] = rand_name(ap1, cj["name"], vfs.flags["nrand"])
|
cj["name"] = rand_name(ap1, cj["name"], vfs.flags["nrand"])
|
||||||
|
|
||||||
if vfs.lim:
|
if vfs.lim:
|
||||||
@ -2306,6 +2304,7 @@ class Up2k(object):
|
|||||||
dst: str,
|
dst: str,
|
||||||
flags: dict[str, Any],
|
flags: dict[str, Any],
|
||||||
verbose: bool = True,
|
verbose: bool = True,
|
||||||
|
rm: bool = False,
|
||||||
lmod: float = 0,
|
lmod: float = 0,
|
||||||
) -> None:
|
) -> None:
|
||||||
if verbose:
|
if verbose:
|
||||||
@ -2345,6 +2344,9 @@ class Up2k(object):
|
|||||||
lsrc = lsrc.replace("/", "\\")
|
lsrc = lsrc.replace("/", "\\")
|
||||||
ldst = ldst.replace("/", "\\")
|
ldst = ldst.replace("/", "\\")
|
||||||
|
|
||||||
|
if rm and bos.path.exists(dst):
|
||||||
|
bos.unlink(dst)
|
||||||
|
|
||||||
try:
|
try:
|
||||||
if "hardlink" in flags:
|
if "hardlink" in flags:
|
||||||
os.link(fsenc(src), fsenc(dst))
|
os.link(fsenc(src), fsenc(dst))
|
||||||
|
@ -1364,8 +1364,10 @@ function up2k_init(subtle) {
|
|||||||
|
|
||||||
if (uc.fsearch)
|
if (uc.fsearch)
|
||||||
entry.srch = 1;
|
entry.srch = 1;
|
||||||
else if (uc.rand)
|
else if (uc.rand) {
|
||||||
entry.rand = true;
|
entry.rand = true;
|
||||||
|
entry.name = 'a\n' + entry.name;
|
||||||
|
}
|
||||||
|
|
||||||
if (biggest_file < entry.size)
|
if (biggest_file < entry.size)
|
||||||
biggest_file = entry.size;
|
biggest_file = entry.size;
|
||||||
@ -1401,7 +1403,7 @@ function up2k_init(subtle) {
|
|||||||
ebi('u2tabw').className = 'ye';
|
ebi('u2tabw').className = 'ye';
|
||||||
|
|
||||||
setTimeout(function () {
|
setTimeout(function () {
|
||||||
if (!actx || actx.state != 'suspended' || toast.tag == L.u_unpt)
|
if (!actx || actx.state != 'suspended' || toast.visible)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
toast.warn(30, "<div onclick=\"start_actx();toast.inf(3,'thanks!')\">please click this text to<br />unlock full upload speed</div>");
|
toast.warn(30, "<div onclick=\"start_actx();toast.inf(3,'thanks!')\">please click this text to<br />unlock full upload speed</div>");
|
||||||
|
Loading…
Reference in New Issue
Block a user