41 lines
1.1 KiB
Python
41 lines
1.1 KiB
Python
|
global handleDir
|
||
|
def handleDir(env):
|
||
|
filePath = env["fPath"]
|
||
|
|
||
|
simpleResponse(
|
||
|
env["self"].connection,"200 OK",{
|
||
|
"Content-Type": "text/html; charset=UTF-8",
|
||
|
"Accept-Ranges": "none",
|
||
|
"Date": env["requestTimeFormatted"]
|
||
|
}
|
||
|
)
|
||
|
|
||
|
dirList = []
|
||
|
fileList = []
|
||
|
|
||
|
with fileLock:
|
||
|
for root,dirs,files in os.walk(filePath):
|
||
|
for file in dirs: dirList.append(p(root,file).replace(filePath + os.path.sep,"",1).replace(os.path.sep,"/") + "/")
|
||
|
for file in files: fileList.append(p(root,file).replace(filePath + os.path.sep,"",1).replace(os.path.sep,"/"))
|
||
|
break
|
||
|
|
||
|
dirList.sort(key=str.lower)
|
||
|
fileList.sort(key=str.lower)
|
||
|
|
||
|
env["self"].connection.sendall(('''\
|
||
|
<html>
|
||
|
<head>
|
||
|
<title>''' +html.escape(env["lPath"])+ '''</title>
|
||
|
</head>
|
||
|
<body>''').encode("utf-8"))
|
||
|
|
||
|
env["self"].connection.sendall(('''<a href="..">..</a><br>\n''').encode("utf-8"))
|
||
|
for l in [dirList,fileList]:
|
||
|
for lfile in l:
|
||
|
env["self"].connection.sendall(('''<a href="''' +html.escape(lfile)+ '''">''' +html.escape(lfile)+ '''</a><br>\n''').encode("utf-8"))
|
||
|
|
||
|
env["self"].connection.sendall(('''\
|
||
|
</body>
|
||
|
</html>''').encode("utf-8"))
|
||
|
|
||
|
fileHandlers[".d"] = handleDir
|