diff --git a/修复文件/fix_routes.py b/修复文件/fix_routes.py deleted file mode 100644 index dd79a46..0000000 --- a/修复文件/fix_routes.py +++ /dev/null @@ -1,117 +0,0 @@ -#!/usr/bin/env python3 -# 检查服务器路由并修复问题 - -import os -import json -from flask import Flask, send_from_directory, jsonify, send_file - -# 设置应用 -app = Flask(__name__) -app.config['OUTPUT_FOLDER'] = '/app/output' -app.config['UPLOAD_FOLDER'] = '/app/uploads' - -@app.route('/view_report/') -def view_report(task_id): - """提供报告预览页面""" - try: - task_output_dir = os.path.join(app.config['OUTPUT_FOLDER'], task_id) - html_path = os.path.join(task_output_dir, "summary.html") - - if os.path.exists(html_path): - print(f"提供报告预览: {html_path}") - return send_file(html_path) - else: - # 查找是否有备用报告文件 - backup_files = [f for f in os.listdir(task_output_dir) if f.endswith('.html')] - if backup_files: - alt_html_path = os.path.join(task_output_dir, backup_files[0]) - print(f"提供备用报告预览: {alt_html_path}") - return send_file(alt_html_path) - else: - return "找不到报告文件", 404 - except Exception as e: - print(f"提供报告预览时出错: {str(e)}") - return f"服务器错误: {str(e)}", 500 - -@app.route('/results//') -def get_result_file(job_id, filename): - """提供访问结果文件的路由""" - try: - file_path = os.path.join(app.config['OUTPUT_FOLDER'], job_id, filename) - if os.path.exists(file_path): - return send_file(file_path) - else: - return f"文件不存在: {file_path}", 404 - except Exception as e: - return f"访问文件出错: {str(e)}", 500 - -@app.route('/api/tasks') -def api_get_tasks(): - """获取所有任务列表""" - tasks = [] - try: - # 遍历输出目录中的所有作业 - for job_id in os.listdir(app.config['OUTPUT_FOLDER']): - job_dir = os.path.join(app.config['OUTPUT_FOLDER'], job_id) - if os.path.isdir(job_dir): - # 尝试读取结果文件 - results_file = os.path.join(job_dir, "results.json") - - # 默认任务信息 - task = { - "id": job_id, - "status": "completed", - "progress": 100, - "result_path": f"/view_report/{job_id}", - "filename": f"视频_{job_id[:6]}", - "uploaded_at": "2024-05-01 12:00:00", - "size": 0, - "message": "处理完成" - } - - # 尝试从原始视频文件获取信息 - try: - # 检查是否有同名的视频文件 - for filename in os.listdir(app.config['UPLOAD_FOLDER']): - if job_id in filename: - task["filename"] = filename - break - except Exception: - pass - - # 尝试从结果文件获取更多信息 - if os.path.exists(results_file): - try: - with open(results_file, 'r') as f: - results = json.load(f) - # 填充任务信息 - if "video_info" in results and "filename" in results["video_info"]: - task["filename"] = results["video_info"]["filename"] - if "analysis" in results and "timestamp" in results["analysis"]: - task["uploaded_at"] = results["analysis"]["timestamp"] - except Exception as e: - print(f"解析结果文件出错: {str(e)}") - - # 如果没有摘要文件,检查目录中是否有HTML文件 - summary_path = os.path.join(job_dir, "summary.html") - if not os.path.exists(summary_path): - html_files = [f for f in os.listdir(job_dir) if f.endswith('.html')] - if html_files: - # 使用第一个HTML文件作为摘要 - task["result_path"] = f"/results/{job_id}/{html_files[0]}" - - tasks.append(task) - except Exception as e: - print(f"获取任务列表出错: {str(e)}") - - return jsonify({"tasks": tasks}) - -# 打印路由表 -def print_routes(): - print("\n当前应用路由表:") - for rule in app.url_map.iter_rules(): - print(f"{rule.endpoint}: {rule.rule}") - -if __name__ == "__main__": - print_routes() - app.run(debug=True, host='0.0.0.0', port=5000) \ No newline at end of file