from flask import Flask
from flask_socketio import SocketIO
from flask_cors import CORS

# (선택) monkey patch 제거하거나 최소화
# import eventlet
# eventlet.monkey_patch(os=False, subprocess=False)

import logging
logging.basicConfig(level=logging.DEBUG)

from modules.proxy_routes import proxy_bp
from modules.omok_routes import register_omok_events

app = Flask(__name__)
app.debug = True

CORS(app, resources={r"/*": {"origins": "https://lupin.jjickjjicks.com"}})

socketio = SocketIO(
    app,
    cors_allowed_origins="*",
    async_mode="threading",  # ⚠️ 디버깅용 안전 모드
    logger=True,
    engineio_logger=True
)

app.register_blueprint(proxy_bp)
register_omok_events(socketio)

if __name__ == "__main__":
    import os
    port_file = os.path.join(os.path.dirname(__file__), ".port")
    try:
        with open(port_file, "r") as f:
            port = int(f.read().strip())
    except:
        port = 5003

    print(f"✅ 서버를 {port}번 포트에서 실행합니다.")
    socketio.run(app, host="0.0.0.0", port=port)
