123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869 |
- 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)
|