Files
profitable-expert-advisor/polymarket/gui/app.py
T
zhutoutoutousan 98a87a69ca Update
2026-02-13 08:03:25 +01:00

82 lines
2.2 KiB
Python

"""
Main Flask Application
Componentized version with blueprints
"""
from flask import Flask, render_template
from flask_socketio import SocketIO
from pathlib import Path
import sys
import os
from dotenv import load_dotenv
# Load environment variables
load_dotenv()
# Setup paths
project_root = Path(__file__).parent.parent.parent
sys.path.insert(0, str(project_root))
gui_path = Path(__file__).parent
sys.path.insert(0, str(gui_path))
# Import API blueprints
try:
from api import create_api_blueprint
from api.backtest import set_socketio
except ImportError:
# Fallback for direct execution
import importlib.util
api_init_path = gui_path / 'api' / '__init__.py'
spec = importlib.util.spec_from_file_location("api", api_init_path)
api_module = importlib.util.module_from_spec(spec)
spec.loader.exec_module(api_module)
create_api_blueprint = api_module.create_api_blueprint
backtest_path = gui_path / 'api' / 'backtest.py'
spec = importlib.util.spec_from_file_location("backtest", backtest_path)
backtest_module = importlib.util.module_from_spec(spec)
spec.loader.exec_module(backtest_module)
set_socketio = backtest_module.set_socketio
app = Flask(__name__,
template_folder='templates',
static_folder='static')
app.config['SECRET_KEY'] = 'cyberpunk-polymarket-secret'
socketio = SocketIO(app, cors_allowed_origins="*")
# Set socketio for backtest routes
set_socketio(socketio)
# Register API blueprints
api_bp = create_api_blueprint()
app.register_blueprint(api_bp)
@app.route('/')
def index():
"""Main dashboard"""
return render_template('dashboard.html')
@socketio.on('connect')
def handle_connect():
"""Handle WebSocket connection"""
socketio.emit('status', {'message': 'Connected to Cyberpunk Dashboard'})
@socketio.on('disconnect')
def handle_disconnect():
"""Handle WebSocket disconnection"""
pass
if __name__ == '__main__':
print("=" * 60)
print("CYBERPUNK POLYMARKET DASHBOARD")
print("=" * 60)
print("Starting server on http://localhost:5000")
print("Press Ctrl+C to stop")
print("=" * 60)
socketio.run(app, host='0.0.0.0', port=5000, debug=True)