37 lines
829 B
Python
Executable File
37 lines
829 B
Python
Executable File
#!/usr/bin/python3
|
|
from flask import Flask, send_file, abort
|
|
import os
|
|
app = Flask(__name__)
|
|
static_node_port = 5001
|
|
|
|
|
|
def safe_name(name):
|
|
# <name> normally has no slashes, but %2f / .. still show up decoded.
|
|
if not name or name != os.path.basename(name) or ".." in name or "\x00" in name:
|
|
abort(404)
|
|
return name
|
|
|
|
|
|
@app.route('/img/<name>')
|
|
def img(name):
|
|
return send_file(f'files/static/img/{safe_name(name)}')
|
|
|
|
|
|
@app.route('/css/<name>')
|
|
def css(name):
|
|
return send_file(f'files/static/css/{safe_name(name)}')
|
|
|
|
|
|
@app.route('/fonts/<name>')
|
|
def fonts(name):
|
|
return send_file(f'files/static/fonts/{safe_name(name)}')
|
|
|
|
|
|
@app.route('/js/<name>')
|
|
def js(name):
|
|
return send_file(f'files/static/js/{safe_name(name)}')
|
|
|
|
|
|
if __name__ == '__main__':
|
|
app.run(host="0.0.0.0", port=static_node_port)
|