hm
This commit is contained in:
60
venv/lib/python3.12/site-packages/engineio/static_files.py
Normal file
60
venv/lib/python3.12/site-packages/engineio/static_files.py
Normal file
@@ -0,0 +1,60 @@
|
||||
content_types = {
|
||||
'css': 'text/css',
|
||||
'gif': 'image/gif',
|
||||
'html': 'text/html',
|
||||
'jpg': 'image/jpeg',
|
||||
'js': 'application/javascript',
|
||||
'json': 'application/json',
|
||||
'png': 'image/png',
|
||||
'txt': 'text/plain',
|
||||
}
|
||||
|
||||
|
||||
def get_static_file(path, static_files):
|
||||
"""Return the local filename and content type for the requested static
|
||||
file URL.
|
||||
|
||||
:param path: the path portion of the requested URL.
|
||||
:param static_files: a static file configuration dictionary.
|
||||
|
||||
This function returns a dictionary with two keys, "filename" and
|
||||
"content_type". If the requested URL does not match any static file, the
|
||||
return value is None.
|
||||
"""
|
||||
extra_path = ''
|
||||
if path in static_files:
|
||||
f = static_files[path]
|
||||
else:
|
||||
f = None
|
||||
while path != '':
|
||||
path, last = path.rsplit('/', 1)
|
||||
extra_path = '/' + last + extra_path
|
||||
if path in static_files:
|
||||
f = static_files[path]
|
||||
break
|
||||
elif path + '/' in static_files:
|
||||
f = static_files[path + '/']
|
||||
break
|
||||
if f:
|
||||
if isinstance(f, str):
|
||||
f = {'filename': f}
|
||||
else:
|
||||
f = f.copy() # in case it is mutated below
|
||||
if f['filename'].endswith('/') and extra_path.startswith('/'):
|
||||
extra_path = extra_path[1:]
|
||||
f['filename'] += extra_path
|
||||
if f['filename'].endswith('/'):
|
||||
if '' in static_files:
|
||||
if isinstance(static_files[''], str):
|
||||
f['filename'] += static_files['']
|
||||
else:
|
||||
f['filename'] += static_files['']['filename']
|
||||
if 'content_type' in static_files['']:
|
||||
f['content_type'] = static_files['']['content_type']
|
||||
else:
|
||||
f['filename'] += 'index.html'
|
||||
if 'content_type' not in f:
|
||||
ext = f['filename'].rsplit('.')[-1]
|
||||
f['content_type'] = content_types.get(
|
||||
ext, 'application/octet-stream')
|
||||
return f
|
||||
Reference in New Issue
Block a user