mirror of
https://github.com/9001/copyparty.git
synced 2025-08-17 09:02:15 -06:00
support json replies from bput
This commit is contained in:
parent
909a76434a
commit
cda36ea8b4
|
@ -849,14 +849,28 @@ class HttpCli(object):
|
||||||
status = "ERROR"
|
status = "ERROR"
|
||||||
|
|
||||||
msg = "{} // {} bytes // {:.3f} MiB/s\n".format(status, sz_total, spd)
|
msg = "{} // {} bytes // {:.3f} MiB/s\n".format(status, sz_total, spd)
|
||||||
|
jmsg = {"status": status, "sz": sz_total, "mbps": round(spd, 3), "files": []}
|
||||||
|
|
||||||
for sz, sha512, ofn, lfn in files:
|
for sz, sha512, ofn, lfn in files:
|
||||||
vpath = self.vpath + "/" + lfn
|
vpath = (self.vpath + "/" if self.vpath else "") + lfn
|
||||||
msg += 'sha512: {} // {} bytes // <a href="/{}">{}</a>\n'.format(
|
msg += 'sha512: {} // {} bytes // <a href="/{}">{}</a>\n'.format(
|
||||||
sha512[:56], sz, quotep(vpath), html_escape(ofn, crlf=True)
|
sha512[:56], sz, quotep(vpath), html_escape(ofn, crlf=True)
|
||||||
)
|
)
|
||||||
# truncated SHA-512 prevents length extension attacks;
|
# truncated SHA-512 prevents length extension attacks;
|
||||||
# using SHA-512/224, optionally SHA-512/256 = :64
|
# using SHA-512/224, optionally SHA-512/256 = :64
|
||||||
|
jpart = {
|
||||||
|
"url": "{}://{}/{}".format(
|
||||||
|
"https" if self.tls else "http",
|
||||||
|
self.headers.get("host", "copyparty"),
|
||||||
|
vpath,
|
||||||
|
),
|
||||||
|
"sha512": sha512[:56],
|
||||||
|
"sz": sz,
|
||||||
|
"fn": lfn,
|
||||||
|
"fn_orig": ofn,
|
||||||
|
"path": vpath,
|
||||||
|
}
|
||||||
|
jmsg["files"].append(jpart)
|
||||||
|
|
||||||
vspd = self._spd(sz_total, False)
|
vspd = self._spd(sz_total, False)
|
||||||
self.log("{} {}".format(vspd, msg))
|
self.log("{} {}".format(vspd, msg))
|
||||||
|
@ -868,7 +882,12 @@ class HttpCli(object):
|
||||||
ft = "{}\n{}\n{}\n".format(ft, msg.rstrip(), errmsg)
|
ft = "{}\n{}\n{}\n".format(ft, msg.rstrip(), errmsg)
|
||||||
f.write(ft.encode("utf-8"))
|
f.write(ft.encode("utf-8"))
|
||||||
|
|
||||||
self.redirect(self.vpath, msg=msg, flavor="return to", click=False)
|
if "j" in self.uparam:
|
||||||
|
jtxt = json.dumps(jmsg, indent=2, sort_keys=True)
|
||||||
|
self.reply(jtxt.encode("utf-8", "replace"), mime="application/json")
|
||||||
|
else:
|
||||||
|
self.redirect(self.vpath, msg=msg, flavor="return to", click=False)
|
||||||
|
|
||||||
self.parser.drop()
|
self.parser.drop()
|
||||||
return True
|
return True
|
||||||
|
|
||||||
|
|
|
@ -129,7 +129,7 @@ class ThumbSrv(object):
|
||||||
|
|
||||||
msg = "cannot create video thumbnails because some of the required programs are not available: "
|
msg = "cannot create video thumbnails because some of the required programs are not available: "
|
||||||
msg += ", ".join(missing)
|
msg += ", ".join(missing)
|
||||||
self.log(msg, c=1)
|
self.log(msg, c=3)
|
||||||
|
|
||||||
t = threading.Thread(target=self.cleaner)
|
t = threading.Thread(target=self.cleaner)
|
||||||
t.daemon = True
|
t.daemon = True
|
||||||
|
|
|
@ -204,7 +204,7 @@ for d in copyparty dep-j2; do find $d -type f; done |
|
||||||
sed -r 's/(.*)\.(.*)/\2 \1/' | LC_ALL=C sort |
|
sed -r 's/(.*)\.(.*)/\2 \1/' | LC_ALL=C sort |
|
||||||
sed -r 's/([^ ]*) (.*)/\2.\1/' | grep -vE '/list1?$' > list1
|
sed -r 's/([^ ]*) (.*)/\2.\1/' | grep -vE '/list1?$' > list1
|
||||||
|
|
||||||
(grep -vE 'gz$' list1; grep -E 'gz$' list1) >list
|
(grep -vE '\.(gz|br)$' list1; grep -E '\.(gz|br)$' list1) >list || true
|
||||||
|
|
||||||
echo creating tar
|
echo creating tar
|
||||||
args=(--owner=1000 --group=1000)
|
args=(--owner=1000 --group=1000)
|
||||||
|
|
Loading…
Reference in a new issue