less jank ?ls

This commit is contained in:
ed 2021-02-21 01:31:49 +00:00
parent b2a560b76f
commit 2d2e8a3da7
4 changed files with 39 additions and 35 deletions

View file

@ -1179,12 +1179,14 @@ class HttpCli(object):
if rem == ".hist":
hidden = ["up2k."]
is_ls = "ls" in self.uparam
dirs = []
files = []
for fn in vfs_ls:
base = ""
href = fn
if self.absolute_urls and vpath:
if not is_ls and self.absolute_urls and vpath:
base = "/" + vpath + "/"
href = base + fn
@ -1221,30 +1223,20 @@ class HttpCli(object):
except:
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:
dirs.append(item)
else:
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 = []
try:
@ -1273,16 +1265,26 @@ class HttpCli(object):
except:
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 = "?{}".format(time.time())
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(
vdir=quotep(self.vpath),
vpnodes=vpnodes,
@ -1294,7 +1296,7 @@ class HttpCli(object):
prologue=logues[0],
epilogue=logues[1],
title=html_escape(self.vpath),
srv_info="</span> /// <span>".join(srv_info),
srv_info=srv_info,
)
self.reply(html.encode("utf-8", "replace"))
return True

View file

@ -75,7 +75,7 @@
<tbody>
{%- 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 %}
</tbody>

View file

@ -834,16 +834,18 @@ function autoplay_blocked() {
window.location = this.top;
return;
}
ebi('srv_info').innerHTML = res.srvinf;
var nodes = res.dirs.concat(res.files);
var top = this.top;
var html = [];
for (var a = 0; a < res.length; a++) {
var ln = '<tr><td>' + res[a][0] + '</td><td><a href="' +
top + res[a][1] + '">' + res[a][2] + '</a></td>';
for (var a = 0; a < nodes.length; a++) {
var r = nodes[a],
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 += '<td>' + res[a][b] + '</td>';
}
html.push(ln + '</tr>')
ln = [ln, r.sz, r.ext, r.dt].join('</td><td>');
html.push(ln + '</td></tr>');
}
html = html.join('\n');
ebi('files').tBodies[0].innerHTML = html;

View file

@ -382,7 +382,7 @@ function up2k_init(have_crypto) {
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.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);
st.files.push(entry);