from flask import Flask, render_template, request, jsonify from flask_cors import CORS from gtts import gTTS import tempfile import os import requests from langdetect import detect app = Flask(__name__) CORS(app) @app.route('/', methods=['GET', 'POST']) def index(): if request.method == 'POST': # Проверка пароля password = request.form.get('password') #if password != 'gg': #return jsonify({"status": "error", "message": "Неверный пароль"}) # Получение текста из формы input_text = request.form.get('text') language_code = detect(input_text) # Генерируем аудио tts = gTTS(text=input_text, lang=language_code, 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(host="0.0.0.0", port=7860, debug=False)