MiklX commited on
Commit
01313c5
·
1 Parent(s): d78fbe0

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +29 -23
app.py CHANGED
@@ -1,10 +1,10 @@
1
  from flask import Flask, render_template, request, jsonify
2
  from flask_cors import CORS
3
  from gtts import gTTS
4
- from langdetect import detect
5
- import os
6
  import tempfile
 
7
  import requests
 
8
 
9
  app = Flask(__name__)
10
  CORS(app)
@@ -135,18 +135,6 @@ language_names = {
135
  'ko': 'Корейский',
136
  }
137
 
138
- def upload_to_gofile(file_path):
139
- with open(file_path, 'rb') as file:
140
- response = requests.post(
141
- 'https://api.gofile.io/uploadFile',
142
- files={'file': file}
143
- )
144
-
145
- if response.status_code == 200 and response.json()['status'] == 'ok':
146
- return response.json()['data']['downloadPage']
147
- else:
148
- return None
149
-
150
  @app.route('/', methods=['GET', 'POST'])
151
  def index():
152
  if request.method == 'POST':
@@ -156,28 +144,39 @@ def index():
156
 
157
  input_text = request.form.get('text')
158
  language_code = detect(input_text)
159
-
160
  tts = gTTS(text=input_text, lang=language_code, slow=False)
161
  temp_file = tempfile.NamedTemporaryFile(suffix=".mp3", delete=False)
162
  tts.save(temp_file.name)
163
 
164
- # Загрузка файла на Gofile
165
- file_url = upload_to_gofile(temp_file.name)
 
166
 
167
- if file_url:
168
- return jsonify({"status": "success", "url": file_url})
169
- else:
170
- return jsonify({"status": "error", "message": "Ошибка загрузки файла"})
 
171
 
 
 
 
 
 
 
 
 
172
  return render_template('index.html')
173
 
174
  @app.route('/language', methods=['GET', 'POST'])
175
- def language():
176
  if request.method == 'POST':
177
  password = request.form.get('password')
 
178
  input_text = request.form.get('text')
179
  language_code = detect(input_text)
180
-
181
  if language_code in language_names:
182
  language_name = language_names[language_code]
183
  return jsonify({"status": "success", "lang_code": language_code, "lang_name": language_name})
@@ -186,5 +185,12 @@ def language():
186
 
187
  return render_template('index.html')
188
 
 
 
 
 
 
 
 
189
  if __name__ == '__main__':
190
  app.run(host="0.0.0.0", port=7860, debug=False)
 
1
  from flask import Flask, render_template, request, jsonify
2
  from flask_cors import CORS
3
  from gtts import gTTS
 
 
4
  import tempfile
5
+ import os
6
  import requests
7
+ from langdetect import detect
8
 
9
  app = Flask(__name__)
10
  CORS(app)
 
135
  'ko': 'Корейский',
136
  }
137
 
 
 
 
 
 
 
 
 
 
 
 
 
138
  @app.route('/', methods=['GET', 'POST'])
139
  def index():
140
  if request.method == 'POST':
 
144
 
145
  input_text = request.form.get('text')
146
  language_code = detect(input_text)
147
+
148
  tts = gTTS(text=input_text, lang=language_code, slow=False)
149
  temp_file = tempfile.NamedTemporaryFile(suffix=".mp3", delete=False)
150
  tts.save(temp_file.name)
151
 
152
+ gofile_server = get_gofile_server()
153
+ if not gofile_server:
154
+ return jsonify({"status": "error", "message": "Не удалось получить сервер Gofile"})
155
 
156
+ upload_url = f"https://{gofile_server}.gofile.io/uploadFile"
157
+
158
+ with open(temp_file.name, "rb") as file:
159
+ files = {"file": (os.path.basename(temp_file.name), file)}
160
+ response = requests.post(upload_url, files=files)
161
 
162
+ os.remove(temp_file.name)
163
+
164
+ if response.status_code == 200:
165
+ uploaded_data = response.json()['data']
166
+ return jsonify({"status": "success", "url": uploaded_data['downloadPage']})
167
+ else:
168
+ return jsonify({"status": "error", "message": "Ошибка при загрузке файла на сервер"})
169
+
170
  return render_template('index.html')
171
 
172
  @app.route('/language', methods=['GET', 'POST'])
173
+ def language_detection():
174
  if request.method == 'POST':
175
  password = request.form.get('password')
176
+
177
  input_text = request.form.get('text')
178
  language_code = detect(input_text)
179
+
180
  if language_code in language_names:
181
  language_name = language_names[language_code]
182
  return jsonify({"status": "success", "lang_code": language_code, "lang_name": language_name})
 
185
 
186
  return render_template('index.html')
187
 
188
+ def get_gofile_server():
189
+ response = requests.get("https://api.gofile.io/getServer")
190
+ if response.status_code == 200:
191
+ return response.json()['data']['server']
192
+ else:
193
+ return None
194
+
195
  if __name__ == '__main__':
196
  app.run(host="0.0.0.0", port=7860, debug=False)