diff --git a/copyparty/__version__.py b/copyparty/__version__.py index 844cf5ac..422b8f54 100644 --- a/copyparty/__version__.py +++ b/copyparty/__version__.py @@ -1,8 +1,8 @@ # coding: utf-8 -VERSION = (0, 10, 6) +VERSION = (0, 10, 7) CODENAME = "zip it" -BUILD_DT = (2021, 4, 2) +BUILD_DT = (2021, 4, 3) S_VERSION = ".".join(map(str, VERSION)) S_BUILD_DT = "{0:04d}-{1:02d}-{2:02d}".format(*BUILD_DT) diff --git a/copyparty/web/up2k.js b/copyparty/web/up2k.js index 30e1f412..cc9afff0 100644 --- a/copyparty/web/up2k.js +++ b/copyparty/web/up2k.js @@ -524,7 +524,7 @@ function up2k_init(have_crypto) { if (st.todo.handshake.length > 0 && st.busy.handshake.length == 0 && ( - st.todo.handshake[0].t3 || ( + st.todo.handshake[0].t4 || ( handshakes_permitted() && st.busy.upload.length < parallel_uploads ) @@ -868,27 +868,32 @@ function up2k_init(have_crypto) { t.done = true; st.bytes.uploaded += t.size - t.bytes_uploaded; var spd1 = (t.size / ((t.t2 - t.t1) / 1000.)) / (1024 * 1024.); - var spd2 = (t.size / ((t.t3 - t.t2) / 1000.)) / (1024 * 1024.); + var spd2 = (t.size / ((t.t4 - t.t3) / 1000.)) / (1024 * 1024.); ebi('f{0}p'.format(t.n)).innerHTML = 'hash {0}, up {1} MB/s'.format( spd1.toFixed(2), spd2.toFixed(2)); } - else t.t3 = undefined; + else t.t4 = undefined; tasker(); } else { - var err = ""; - var rsp = (xhr.responseText + ''); + var err = "", + rsp = (xhr.responseText + ''), + ofs = rsp.lastIndexOf('\nURL: '); + + if (ofs !== -1) + rsp = rsp.slice(0, ofs); + + if (rsp.indexOf('
') === 0)
+ rsp = rsp.slice(5);
+
+ st.bytes.uploaded += t.size;
if (rsp.indexOf('partial upload exists') !== -1 ||
rsp.indexOf('file already exists') !== -1) {
err = rsp;
- var ofs = err.lastIndexOf(' : ');
- if (ofs > 0)
- err = err.slice(0, ofs);
-
ofs = err.indexOf('\n/');
if (ofs !== -1) {
- err = err.slice(0, ofs + 1) + linksplit(err.slice(ofs + 2, -1)).join(' ');
+ err = err.slice(0, ofs + 1) + linksplit(err.slice(ofs + 2)).join(' ');
}
}
if (err != "") {
@@ -961,7 +966,7 @@ function up2k_init(have_crypto) {
st.busy.upload.splice(st.busy.upload.indexOf(upt), 1);
t.postlist.splice(t.postlist.indexOf(npart), 1);
if (t.postlist.length == 0) {
- t.t3 = new Date().getTime();
+ t.t4 = new Date().getTime();
ebi('f{0}t'.format(t.n)).innerHTML = 'verifying';
st.todo.handshake.unshift(t);
}
@@ -984,6 +989,9 @@ function up2k_init(have_crypto) {
xhr.responseType = 'text';
xhr.send(e.target.result);
+
+ if (!t.t3)
+ t.t3 = new Date().getTime();
};
reader.readAsArrayBuffer(bobslice.call(t.fobj, car, cdr));
diff --git a/docs/notes.sh b/docs/notes.sh
index 476a1f59..2f07c404 100644
--- a/docs/notes.sh
+++ b/docs/notes.sh
@@ -73,6 +73,13 @@ shab64() { sp=$1; f="$2"; v=0; sz=$(stat -c%s "$f"); while true; do w=$((v+sp*10
command -v gdate && date() { gdate "$@"; }; while true; do t=$(date +%s.%N); (time wget http://127.0.0.1:3923/?ls -qO- | jq -C '.files[]|{sz:.sz,ta:.tags.artist,tb:.tags.".bpm"}|del(.[]|select(.==null))' | awk -F\" '/"/{t[$2]++} END {for (k in t){v=t[k];p=sprintf("%" (v+1) "s",v);gsub(/ /,"#",p);printf "\033[36m%s\033[33m%s ",k,p}}') 2>&1 | awk -v ts=$t 'NR==1{t1=$0} NR==2{sub(/.*0m/,"");sub(/s$/,"");t2=$0;c=2; if(t2>0.3){c=3} if(t2>0.8){c=1} } END{sub(/[0-9]{6}$/,"",ts);printf "%s \033[3%dm%s %s\033[0m\n",ts,c,t2,t1}'; sleep 0.1 || break; done
+##
+## js oneliners
+
+# get all up2k search result URLs
+var t=[]; var b=document.location.href.split('#')[0].slice(0, -1); document.querySelectorAll('#u2tab .prog a').forEach((x) => {t.push(b+encodeURI(x.getAttribute("href")))}); console.log(t.join("\n"));
+
+
##
## sqlite3 stuff
@@ -139,6 +146,7 @@ dbg.asyncStore.pendingBreakpoints = {}
# fix firefox phantom breakpoints
about:config >> devtools.debugger.prefs-schema-version = -1
+
##
## http 206