from flask import Flask, render_template, request, jsonify from flask_cors import CORS from gtts import gTTS import tempfile import os import requests app = Flask(__name__) CORS(app) @app.route('/', methods=['GET', 'POST']) def index(): if request.method == 'POST': # Проверка пароля password = request.form.get('password') if password != 'your_password_here': return jsonify({"status": "error", "message": "Неверный пароль"}) # Получение текста из формы input_text = request.form.get('text') # Генерируем аудио tts = gTTS(text=input_text, lang="ru", slow=False) # Создаем временный файл и сохраняем в него аудио temp_file = tempfile.NamedTemporaryFile(suffix=".mp3", delete=False) temp_file_name = temp_file.name tts.save(temp_file_name) # Указываем URL сервера, на который хотим загрузить файл upload_url = "https://x0.at/" # Замените на реальный URL # Открываем временный файл для чтения бинарных данных with open(temp_file_name, "rb") as file: files = {"file": (os.path.basename(temp_file_name), file)} # Выполняем POST-запрос с использованием библиотеки requests response = requests.post(upload_url, files=files) # Закрываем и удаляем временный файл temp_file.close() os.remove(temp_file_name) # Проверяем статус код ответа if response.status_code == 200: uploaded_url = response.text.strip() return jsonify({"status": "success", "url": uploaded_url}) else: return jsonify({"status": "error", "message": "Ошибка при загрузке файла на сервер", "status_code": response.status_code}) return render_template('index.html') if __name__ == '__main__': app.run()