| import os |
| import requests |
| import shutil |
| from urllib.parse import urlparse |
| from flask import Flask, request, jsonify, send_from_directory |
|
|
| app = Flask(__name__) |
|
|
| |
| if not os.path.exists('images'): |
| os.makedirs('images') |
|
|
| if not os.path.exists('files'): |
| os.makedirs('files') |
|
|
| |
| current_directory = 'files' |
|
|
| @app.route('/') |
| def index(): |
| return send_from_directory('static', 'index.html') |
|
|
| @app.route('/download_image') |
| def download_image(): |
| url = request.args.get('url') |
| if not url: |
| return jsonify({'success': False, 'message': 'No URL provided.'}) |
|
|
| try: |
| response = requests.get(url) |
| if response.status_code == 200: |
| image_name = os.path.basename(urlparse(url).path) |
| image_path = os.path.join('images', image_name) |
| with open(image_path, 'wb') as file: |
| file.write(response.content) |
|
|
| file_size = os.path.getsize(image_path) |
| file_size = f'{file_size / (1024 * 1024):.2f} MB' |
| return jsonify({ |
| 'success': True, |
| 'image_url': f'/images/{image_name}', |
| 'file_size': file_size, |
| 'message': f'Image downloaded: {image_name}' |
| }) |
| else: |
| return jsonify({'success': False, 'message': 'Failed to fetch image.'}) |
| except Exception as e: |
| return jsonify({'success': False, 'message': str(e)}) |
|
|
| @app.route('/images/<filename>') |
| def serve_image(filename): |
| return send_from_directory('images', filename) |
|
|
| @app.route('/terminal', methods=['POST']) |
| def terminal(): |
| command = request.json.get('command') |
| global current_directory |
| output = "" |
| |
| if command.startswith("ls"): |
| output = "\n".join(os.listdir(current_directory)) or "No files or directories." |
| elif command.startswith("cat"): |
| filename = command.split(" ")[1] |
| try: |
| with open(os.path.join(current_directory, filename), 'r') as f: |
| output = f.read() |
| except FileNotFoundError: |
| output = f"Error: {filename} not found." |
| elif command.startswith("mkdir"): |
| folder_name = command.split(" ")[1] |
| os.makedirs(os.path.join(current_directory, folder_name), exist_ok=True) |
| output = f"Directory {folder_name} created." |
| elif command.startswith("touch"): |
| filename = command.split(" ")[1] |
| with open(os.path.join(current_directory, filename), 'w') as f: |
| pass |
| output = f"File {filename} created." |
| elif command.startswith("rm"): |
| filename = command.split(" ")[1] |
| try: |
| os.remove(os.path.join(current_directory, filename)) |
| output = f"File {filename} removed." |
| except FileNotFoundError: |
| output = f"Error: {filename} not found." |
| elif command.startswith("cd"): |
| folder_name = command.split(" ")[1] |
| new_directory = os.path.join(current_directory, folder_name) |
| if os.path.isdir(new_directory): |
| current_directory = new_directory |
| output = f"Changed directory to {folder_name}" |
| else: |
| output = f"Error: {folder_name} not found." |
| elif command == "pwd": |
| output = f"Current directory: {current_directory}" |
| else: |
| output = "Unknown command. Type 'help' for a list of available commands." |
|
|
| return jsonify({'output': output}) |
|
|
| if __name__ == '__main__': |
| app.run(debug=True) |
|
|