mirror of
https://github.com/9001/copyparty.git
synced 2025-08-17 09:02:15 -06:00
less jank ?ls
This commit is contained in:
parent
b2a560b76f
commit
2d2e8a3da7
|
@ -1179,12 +1179,14 @@ class HttpCli(object):
|
||||||
if rem == ".hist":
|
if rem == ".hist":
|
||||||
hidden = ["up2k."]
|
hidden = ["up2k."]
|
||||||
|
|
||||||
|
is_ls = "ls" in self.uparam
|
||||||
|
|
||||||
dirs = []
|
dirs = []
|
||||||
files = []
|
files = []
|
||||||
for fn in vfs_ls:
|
for fn in vfs_ls:
|
||||||
base = ""
|
base = ""
|
||||||
href = fn
|
href = fn
|
||||||
if self.absolute_urls and vpath:
|
if not is_ls and self.absolute_urls and vpath:
|
||||||
base = "/" + vpath + "/"
|
base = "/" + vpath + "/"
|
||||||
href = base + fn
|
href = base + fn
|
||||||
|
|
||||||
|
@ -1221,30 +1223,20 @@ class HttpCli(object):
|
||||||
except:
|
except:
|
||||||
ext = "%"
|
ext = "%"
|
||||||
|
|
||||||
item = [margin, quotep(href), html_escape(fn), sz, ext, dt]
|
item = {
|
||||||
|
"lead": margin,
|
||||||
|
"href": quotep(href),
|
||||||
|
"name": fn,
|
||||||
|
"sz": sz,
|
||||||
|
"ext": ext,
|
||||||
|
"dt": dt,
|
||||||
|
"ts": inf.st_mtime,
|
||||||
|
}
|
||||||
if is_dir:
|
if is_dir:
|
||||||
dirs.append(item)
|
dirs.append(item)
|
||||||
else:
|
else:
|
||||||
files.append(item)
|
files.append(item)
|
||||||
|
|
||||||
logues = [None, None]
|
|
||||||
for n, fn in enumerate([".prologue.html", ".epilogue.html"]):
|
|
||||||
fn = os.path.join(abspath, fn)
|
|
||||||
if os.path.exists(fsenc(fn)):
|
|
||||||
with open(fsenc(fn), "rb") as f:
|
|
||||||
logues[n] = f.read().decode("utf-8")
|
|
||||||
|
|
||||||
if False:
|
|
||||||
# this is a mistake
|
|
||||||
md = None
|
|
||||||
for fn in [x[2] for x in files]:
|
|
||||||
if fn.lower() == "readme.md":
|
|
||||||
fn = os.path.join(abspath, fn)
|
|
||||||
with open(fn, "rb") as f:
|
|
||||||
md = f.read().decode("utf-8")
|
|
||||||
|
|
||||||
break
|
|
||||||
|
|
||||||
srv_info = []
|
srv_info = []
|
||||||
|
|
||||||
try:
|
try:
|
||||||
|
@ -1273,16 +1265,26 @@ class HttpCli(object):
|
||||||
except:
|
except:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
srv_info = "</span> /// <span>".join(srv_info)
|
||||||
|
|
||||||
|
if is_ls:
|
||||||
|
[x.pop("name") for y in [dirs, files] for x in y]
|
||||||
|
ret = json.dumps({"dirs": dirs, "files": files, "srvinf": srv_info})
|
||||||
|
self.reply(ret.encode("utf-8", "replace"))
|
||||||
|
return True
|
||||||
|
|
||||||
|
logues = [None, None]
|
||||||
|
for n, fn in enumerate([".prologue.html", ".epilogue.html"]):
|
||||||
|
fn = os.path.join(abspath, fn)
|
||||||
|
if os.path.exists(fsenc(fn)):
|
||||||
|
with open(fsenc(fn), "rb") as f:
|
||||||
|
logues[n] = f.read().decode("utf-8")
|
||||||
|
|
||||||
ts = ""
|
ts = ""
|
||||||
# ts = "?{}".format(time.time())
|
# ts = "?{}".format(time.time())
|
||||||
|
|
||||||
dirs.extend(files)
|
dirs.extend(files)
|
||||||
|
|
||||||
if "ls" in self.uparam:
|
|
||||||
ret = json.dumps(dirs)
|
|
||||||
self.reply(ret.encode("utf-8", "replace"))
|
|
||||||
return True
|
|
||||||
|
|
||||||
html = self.conn.tpl_browser.render(
|
html = self.conn.tpl_browser.render(
|
||||||
vdir=quotep(self.vpath),
|
vdir=quotep(self.vpath),
|
||||||
vpnodes=vpnodes,
|
vpnodes=vpnodes,
|
||||||
|
@ -1294,7 +1296,7 @@ class HttpCli(object):
|
||||||
prologue=logues[0],
|
prologue=logues[0],
|
||||||
epilogue=logues[1],
|
epilogue=logues[1],
|
||||||
title=html_escape(self.vpath),
|
title=html_escape(self.vpath),
|
||||||
srv_info="</span> /// <span>".join(srv_info),
|
srv_info=srv_info,
|
||||||
)
|
)
|
||||||
self.reply(html.encode("utf-8", "replace"))
|
self.reply(html.encode("utf-8", "replace"))
|
||||||
return True
|
return True
|
||||||
|
|
|
@ -75,7 +75,7 @@
|
||||||
<tbody>
|
<tbody>
|
||||||
|
|
||||||
{%- for f in files %}
|
{%- for f in files %}
|
||||||
<tr><td>{{ f[0] }}</td><td><a href="{{ f[1] }}">{{ f[2] }}</a></td><td>{{ f[3] }}</td><td>{{ f[4] }}</td><td>{{ f[5] }}</td></tr>
|
<tr><td>{{ f.lead }}</td><td><a href="{{ f.href }}">{{ f.name|e }}</a></td><td>{{ f.sz }}</td><td>{{ f.ext }}</td><td>{{ f.dt }}</td></tr>
|
||||||
{%- endfor %}
|
{%- endfor %}
|
||||||
|
|
||||||
</tbody>
|
</tbody>
|
||||||
|
|
|
@ -834,16 +834,18 @@ function autoplay_blocked() {
|
||||||
window.location = this.top;
|
window.location = this.top;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ebi('srv_info').innerHTML = res.srvinf;
|
||||||
|
var nodes = res.dirs.concat(res.files);
|
||||||
var top = this.top;
|
var top = this.top;
|
||||||
var html = [];
|
var html = [];
|
||||||
for (var a = 0; a < res.length; a++) {
|
for (var a = 0; a < nodes.length; a++) {
|
||||||
var ln = '<tr><td>' + res[a][0] + '</td><td><a href="' +
|
var r = nodes[a],
|
||||||
top + res[a][1] + '">' + res[a][2] + '</a></td>';
|
ln = '<tr><td>' + r.lead + '</td><td><a href="' +
|
||||||
|
top + r.href + '">' + esc(decodeURIComponent(r.href)) + '</a>';
|
||||||
|
|
||||||
for (var b = 3; b < res[a].length; b++) {
|
ln = [ln, r.sz, r.ext, r.dt].join('</td><td>');
|
||||||
ln += '<td>' + res[a][b] + '</td>';
|
html.push(ln + '</td></tr>');
|
||||||
}
|
|
||||||
html.push(ln + '</tr>')
|
|
||||||
}
|
}
|
||||||
html = html.join('\n');
|
html = html.join('\n');
|
||||||
ebi('files').tBodies[0].innerHTML = html;
|
ebi('files').tBodies[0].innerHTML = html;
|
||||||
|
|
|
@ -382,7 +382,7 @@ function up2k_init(have_crypto) {
|
||||||
|
|
||||||
var tr = document.createElement('tr');
|
var tr = document.createElement('tr');
|
||||||
tr.innerHTML = '<td id="f{0}n"></td><td id="f{0}t">hashing</td><td id="f{0}p" class="prog"></td>'.format(st.files.length);
|
tr.innerHTML = '<td id="f{0}n"></td><td id="f{0}t">hashing</td><td id="f{0}p" class="prog"></td>'.format(st.files.length);
|
||||||
tr.getElementsByTagName('td')[0].innerHTML = linksplit(esc(entry.purl + entry.name)).join(' ');
|
tr.getElementsByTagName('td')[0].innerHTML = fsearch ? entry.name : linksplit(esc(entry.purl + entry.name)).join(' ');
|
||||||
ebi('u2tab').appendChild(tr);
|
ebi('u2tab').appendChild(tr);
|
||||||
|
|
||||||
st.files.push(entry);
|
st.files.push(entry);
|
||||||
|
|
Loading…
Reference in a new issue