zenjoul80 commited on
Commit
dcec006
Β·
verified Β·
1 Parent(s): d16fd19

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +10 -16
app.py CHANGED
@@ -1,21 +1,19 @@
1
  from gevent import monkey
2
- monkey.patch_all() # THIS MUST BE LINE 1, BEFORE ANY OTHER IMPORTS
3
 
4
  import os
5
- import time
6
  import requests
7
- import threading
8
- import io
9
  from flask import Flask, render_template, request, session, send_from_directory, jsonify
10
  from flask_socketio import SocketIO, emit
11
 
12
  app = Flask(__name__)
13
- app.config['SECRET_KEY'] = 'suno_modern_2026'
14
  socketio = SocketIO(app, cors_allowed_origins="*", async_mode='gevent')
15
 
16
- MUSIC_FOLDER = 'saved_music'
 
17
  if not os.path.exists(MUSIC_FOLDER):
18
- os.makedirs(MUSIC_FOLDER)
19
 
20
  task_to_sid = {}
21
 
@@ -35,14 +33,13 @@ def callback():
35
  filename = f"{task_id}.mp3"
36
  filepath = os.path.join(MUSIC_FOLDER, filename)
37
  try:
38
- # Server-side download
39
  r = requests.get(audio_url, timeout=30)
40
  with open(filepath, 'wb') as f:
41
  f.write(r.content)
42
 
43
  if task_id in task_to_sid:
44
  socketio.emit('status', {
45
- 'msg': '✨ Success! Music saved to server.',
46
  'file_name': filename,
47
  'done': True
48
  }, room=task_to_sid[task_id])
@@ -64,7 +61,7 @@ def save_token(data):
64
  def handle_gen(payload):
65
  token = session.get('api_token')
66
  if not token:
67
- emit('status', {'msg': '❌ Error: Connect token first.'})
68
  return
69
 
70
  headers = {"Authorization": f"Bearer {token}", "Content-Type": "application/json"}
@@ -74,19 +71,16 @@ def handle_gen(payload):
74
  try:
75
  res = requests.post("https://api.sunoapi.org/api/v1/generate/upload-cover", json=payload, headers=headers)
76
  res_json = res.json()
77
-
78
  api_data = res_json.get('data')
79
  if api_data:
80
  task_id = api_data.get('taskId')
81
  task_to_sid[task_id] = request.sid
82
  emit('status', {'msg': f'πŸš€ Task {task_id} started...'})
83
  else:
84
- msg = res_json.get('msg') or "API Error"
85
- emit('status', {'msg': f'❌ Suno Error: {msg}'})
86
-
87
  except Exception as e:
88
  emit('status', {'msg': f'❌ Connection Error: {str(e)}'})
89
 
90
  if __name__ == '__main__':
91
- port = int(os.environ.get("PORT", 5000))
92
- socketio.run(app, host="0.0.0.0", port=port)
 
1
  from gevent import monkey
2
+ monkey.patch_all()
3
 
4
  import os
 
5
  import requests
 
 
6
  from flask import Flask, render_template, request, session, send_from_directory, jsonify
7
  from flask_socketio import SocketIO, emit
8
 
9
  app = Flask(__name__)
10
+ app.config['SECRET_KEY'] = 'docker_suno_2026'
11
  socketio = SocketIO(app, cors_allowed_origins="*", async_mode='gevent')
12
 
13
+ # Use an absolute path for Docker reliability
14
+ MUSIC_FOLDER = os.path.join(os.getcwd(), 'saved_music')
15
  if not os.path.exists(MUSIC_FOLDER):
16
+ os.makedirs(MUSIC_FOLDER, exist_ok=True)
17
 
18
  task_to_sid = {}
19
 
 
33
  filename = f"{task_id}.mp3"
34
  filepath = os.path.join(MUSIC_FOLDER, filename)
35
  try:
 
36
  r = requests.get(audio_url, timeout=30)
37
  with open(filepath, 'wb') as f:
38
  f.write(r.content)
39
 
40
  if task_id in task_to_sid:
41
  socketio.emit('status', {
42
+ 'msg': '✨ Success! Saved to Docker storage.',
43
  'file_name': filename,
44
  'done': True
45
  }, room=task_to_sid[task_id])
 
61
  def handle_gen(payload):
62
  token = session.get('api_token')
63
  if not token:
64
+ emit('status', {'msg': '❌ Error: Link token first.'})
65
  return
66
 
67
  headers = {"Authorization": f"Bearer {token}", "Content-Type": "application/json"}
 
71
  try:
72
  res = requests.post("https://api.sunoapi.org/api/v1/generate/upload-cover", json=payload, headers=headers)
73
  res_json = res.json()
 
74
  api_data = res_json.get('data')
75
  if api_data:
76
  task_id = api_data.get('taskId')
77
  task_to_sid[task_id] = request.sid
78
  emit('status', {'msg': f'πŸš€ Task {task_id} started...'})
79
  else:
80
+ emit('status', {'msg': f"❌ API Error: {res_json.get('msg')}"})
 
 
81
  except Exception as e:
82
  emit('status', {'msg': f'❌ Connection Error: {str(e)}'})
83
 
84
  if __name__ == '__main__':
85
+ socketio.run(app, host="0.0.0.0", port=7860)
86
+