from flask import Flask, render_template from flask_socketio import SocketIO, send, emit import json, subprocess, os app = Flask(__name__) app.config['SECRET_KEY'] = 'secret!' socketio = SocketIO(app, cors_allowed_origins="*") subprocess.Popen(["venv/bin/python","main.py"]) def list_directory(path): result = [] for root, dirs, files in os.walk(path): rel_path = os.path.relpath(root, path) if rel_path == ".": rel_path = "" for file in files: file_path = os.path.join(rel_path, file) file_full_path = os.path.join(root, file) file_size = os.path.getsize(file_full_path) result.append({"type": "file", "path": file_path, "size": file_size}) for dir in dirs: dir_path = os.path.join(rel_path, dir) dir_full_path = os.path.join(root, dir) dir_content = list_directory(dir_full_path) result.append({"type": "directory", "path": dir_path, "files": dir_content}) return result @socketio.on('connect') def handle_connect(): print('Client connected') emit('response', {'data': 'Connected'}) @socketio.on('disconnect') def handle_disconnect(): print('Client disconnected') @socketio.on('message') def handle_message(message): if message == "files": dir = './files' if not os.path.exists(dir): os.mkdir(dir) files_list = list_directory(dir) emit("files",files_list) @app.route('/') def index(): return json.dumps({"connect":True}) if __name__ == '__main__': socketio.run(app, host='0.0.0.0', port=7860)