|
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) |
|
|
|
|
|
upload_url = "https://x0.at/" |
|
|
|
|
|
with open(temp_file_name, "rb") as file: |
|
files = {"file": (os.path.basename(temp_file_name), file)} |
|
|
|
|
|
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() |
|
|