|
|
import os |
|
|
import sys |
|
|
|
|
|
sys.path.insert(0, os.path.dirname(os.path.dirname(__file__))) |
|
|
|
|
|
from flask import Flask, send_from_directory |
|
|
from flask_cors import CORS |
|
|
from src.models.user import db |
|
|
from src.routes.user import user_bp |
|
|
from src.routes.scanner import scanner_bp |
|
|
|
|
|
app = Flask(__name__, static_folder=os.path.join(os.path.dirname(__file__), 'static')) |
|
|
app.config['SECRET_KEY'] = 'asdf#FGSgvasgf$5$WGT' |
|
|
|
|
|
|
|
|
CORS(app) |
|
|
|
|
|
app.register_blueprint(user_bp, url_prefix='/api') |
|
|
app.register_blueprint(scanner_bp, url_prefix='/api') |
|
|
|
|
|
|
|
|
app.config['SQLALCHEMY_DATABASE_URI'] = f"sqlite:///{os.path.join(os.path.dirname(__file__), 'database', 'app.db')}" |
|
|
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False |
|
|
db.init_app(app) |
|
|
with app.app_context(): |
|
|
db.create_all() |
|
|
|
|
|
@app.route('/', defaults={'path': ''}) |
|
|
@app.route('/<path:path>') |
|
|
def serve(path): |
|
|
static_folder_path = app.static_folder |
|
|
if static_folder_path is None: |
|
|
return "Static folder not configured", 404 |
|
|
|
|
|
if path != "" and os.path.exists(os.path.join(static_folder_path, path)): |
|
|
return send_from_directory(static_folder_path, path) |
|
|
else: |
|
|
index_path = os.path.join(static_folder_path, 'index.html') |
|
|
if os.path.exists(index_path): |
|
|
return send_from_directory(static_folder_path, 'index.html') |
|
|
else: |
|
|
return "index.html not found", 404 |
|
|
|
|
|
|
|
|
if __name__ == '__main__': |
|
|
import os |
|
|
port = int(os.environ.get('PORT', 7860)) |
|
|
app.run(host='0.0.0.0', port=port, debug=False) |
|
|
|