import logging from flask import Flask, request, jsonify, render_template from flask_socketio import SocketIO from src.app.QbApp import QbApp import configparser import os app = Flask(__name__,static_folder='assets') socketio = SocketIO(app,cors_allowed_origins="*") # 初始化日志和配置 logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s') # 获取当前脚本的绝对路径 current_directory = os.path.dirname(os.path.abspath(__file__)) logging.info(f"current_dir -> {current_directory} ") # 初始化QbApp实例 # 构建 config.ini 文件的路径 config_path = os.path.join(current_directory, 'config', 'config.ini') # config_path = 'path/to/your/config.ini' # 指定配置文件路径 config = configparser.ConfigParser() config.read(config_path) app_service = QbApp(config, parent_directory=os.getcwd(), socketio=socketio) app_service.init() @app.route('/add', methods=['POST']) def add_magnet(): data = request.json magnet_link = data.get('magnet_link') if magnet_link: app_service.add(magnet_link) return jsonify({'message': 'Magnet link added successfully.'}), 200 else: return jsonify({'error': 'Magnet link is required.'}), 400 @app.route('/start', methods=['POST']) def start_monitoring(): try: app_service.start() # 假设这是停止监控的方法 return jsonify({'message': 'Monitoring start successfully.'}), 200 except Exception as e: logging.error(f"Error stopping monitoring: {e}") return jsonify({'error': 'Failed to start monitoring.'}), 500 @app.route('/stop', methods=['POST']) def stop_monitoring(): try: app_service.stop() # 假设这是停止监控的方法 return jsonify({'message': 'Monitoring stopped successfully.'}), 200 except Exception as e: logging.error(f"Error stopping monitoring: {e}") return jsonify({'error': 'Failed to stop monitoring.'}), 500 @app.route('/') def index(): return render_template('index.html') @app.route('/monitor') def monitor(): return render_template('monitor.html') if __name__ == '__main__': socketio.run(app, debug=True)