# from http://tools.cherrypy.org/wiki/staticdirindex
import os
import os.path
import datetime
import cherrypy
def htmldir(section="", dir="", path="", hdr=True, **kwargs):
fh = ''
url = (
"http://"
+ cherrypy.request.headers.get('Host', '')
+ cherrypy.request.path_info
)
# preamble
if hdr:
fh += (
"""
Directory listing for: %s
"""
% url
)
path = path.rstrip(r"\/")
fh += 'Directory listing for: ' + url + '
\n'
for dpath, ddirs, dfiles in os.walk(path):
for dn in sorted(ddirs):
fdn = os.path.join(dpath, dn)
dmtime = os.path.getmtime(fdn)
dtim = datetime.datetime.fromtimestamp(dmtime).isoformat('-')
fh += """{}/
""".format(
dn + '/',
dtim,
dn,
)
del ddirs[:] # limit to one level
for fil in sorted(dfiles):
fn = os.path.join(dpath, fil)
siz = os.path.getsize(fn)
fmtime = os.path.getmtime(fn)
ftim = datetime.datetime.fromtimestamp(fmtime).isoformat('-')
fh += """{}
""".format(
fil,
ftim,
str(siz),
fil,
)
# postamble
if hdr:
fh += """
"""
return fh