mirror of https://github.com/dirtbags/moth.git
There's a simpler way to do it
This commit is contained in:
parent
fec4132471
commit
e4fae16023
|
@ -47,32 +47,12 @@ class MothRequestHandler(http.server.SimpleHTTPRequestHandler):
|
||||||
|
|
||||||
# Backport from Python 3.7
|
# Backport from Python 3.7
|
||||||
def translate_path(self, path):
|
def translate_path(self, path):
|
||||||
"""Translate a /-separated PATH to the local filename syntax.
|
# I guess we just hope that some other thread doesn't call getcwd
|
||||||
Components that mean special things to the local file system
|
getcwd = os.getcwd
|
||||||
(e.g. drive or directory names) are ignored. (XXX They should
|
os.getcwd = lambda: self.directory
|
||||||
probably be diagnosed.)
|
ret = super().translate_path(path)
|
||||||
"""
|
os.getcwd = getcwd
|
||||||
# abandon query parameters
|
return ret
|
||||||
path = path.split('?',1)[0]
|
|
||||||
path = path.split('#',1)[0]
|
|
||||||
# Don't forget explicit trailing slash when normalizing. Issue17324
|
|
||||||
trailing_slash = path.rstrip().endswith('/')
|
|
||||||
try:
|
|
||||||
path = urllib.parse.unquote(path, errors='surrogatepass')
|
|
||||||
except UnicodeDecodeError:
|
|
||||||
path = urllib.parse.unquote(path)
|
|
||||||
path = posixpath.normpath(path)
|
|
||||||
words = path.split('/')
|
|
||||||
words = filter(None, words)
|
|
||||||
path = self.directory
|
|
||||||
for word in words:
|
|
||||||
if os.path.dirname(word) or word in (os.curdir, os.pardir):
|
|
||||||
# Ignore components that are not a simple file/directory name
|
|
||||||
continue
|
|
||||||
path = os.path.join(path, word)
|
|
||||||
if trailing_slash:
|
|
||||||
path += '/'
|
|
||||||
return path
|
|
||||||
|
|
||||||
|
|
||||||
def get_puzzle(self):
|
def get_puzzle(self):
|
||||||
|
|
Loading…
Reference in New Issue