from flask import Flask, render_template, jsonify, request from flask_cors import CORS app = Flask(__name__) CORS(app, resources={r"/api/*": {"origins": "*"}}) # Thêm security headers cho HF Spaces @app.after_request def after_request(response): response.headers.add('Access-Control-Allow-Origin', '*') response.headers.add('Access-Control-Allow-Headers', 'Content-Type') response.headers.add('Access-Control-Allow-Methods', 'GET,POST,OPTIONS') return response # Trạng thái đèn (lưu trong memory, có thể thay bằng database) light_status = { 'on': False } @app.route('/') def index(): """Trang chủ với giao diện điều khiển đèn""" return render_template('index.html') @app.route('/api/light/status/', methods=['GET']) def get_light_status(): """API lấy trạng thái đèn hiện tại""" return jsonify({ 'status': 'on' if light_status['on'] else 'off', 'on': light_status['on'] }) @app.route('/api/light/toggle', methods=['POST']) def toggle_light(): """API bật/tắt đèn""" light_status['on'] = not light_status['on'] return jsonify({ 'status': 'on' if light_status['on'] else 'off', 'on': light_status['on'], 'message': 'Đèn đã bật' if light_status['on'] else 'Đèn đã tắt' }) @app.route('/api/light/on', methods=['POST']) def turn_on(): """API bật đèn""" light_status['on'] = True return jsonify({ 'status': 'on', 'on': True, 'message': 'Đèn đã bật' }) @app.route('/api/light/off', methods=['POST']) def turn_off(): """API tắt đèn""" light_status['on'] = False return jsonify({ 'status': 'off', 'on': False, 'message': 'Đèn đã tắt' }) if __name__ == '__main__': app.run(debug=False, host='0.0.0.0', port=7860)