from flask import Flask, render_template
from flask_socketio import SocketIO
from flask_cors import CORS  # ✅ 추가
from modules.proxy_routes import proxy_bp
from modules.omok_routes import register_omok_events

app = Flask(__name__)
# CORS(app, resources={r"/*": {"origins": "*"}})  # ✅ 모든 origin 허용 (보안이슈 없는 경우만)

# 또는 특정 도메인만 허용할 경우 아래 사용
CORS(app, resources={r"/*": {"origins": "https://lupin.jjickjjicks.com"}})

# ✅ SocketIO CORS 허용
socketio = SocketIO(app, cors_allowed_origins="*")  
# 보안 강화를 원하면 cors_allowed_origins=["https://lupin.jjickjjicks.com"]

# 블루프린트 등록
app.register_blueprint(proxy_bp)

# 소켓IO 이벤트 등록
register_omok_events(socketio)

# 서버 실행
@app.route("/")
def home():
    return render_template("viewer.html")

if __name__ == "__main__":
    import os
    # Priority: env(LUPIN_PORT|PORT) > ./.port file > 5003
    env_port = os.environ.get("LUPIN_PORT") or os.environ.get("PORT")
    port = None
    if env_port:
        try:
            port = int(env_port)
        except ValueError:
            port = None
    if port is None:
        port_file = os.path.join(os.path.dirname(__file__), ".port")
        try:
            with open(port_file, "r") as f:
                port = int(f.read().strip())
        except Exception:
            port = 5003

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