File size: 2,174 Bytes
382c3e9 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 |
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()
|