import os
import requests
from flask import Flask, render_template, request

app = Flask(__name__)

prod_token = os.environ.get('SUNO_API_TOKEN')

@app.route('/')
def index():
    return render_template('index.html')

@app.route('/generate-song', methods=['POST'])
def generate_song():
    # Get topic from request
    data = request.get_json()
    topic = data.get('topic')

    print(topic)

    if not topic:
        return {'error': 'Topic is required'}

    # Make a request to the Suno API
    try:
        payload = {"topic": topic}

        # Send the POST request
        response = requests.post(
            url = "https://studio-api.prod.suno.com/api/v2/external/generate/",
            json=payload,
            headers={
                "Authorization": f"Bearer {prod_token}",
                "Content-Type": "application/json"
            }
        )

        if response.status_code == 200:
            song_data = response.json()
            return song_data['id']
        else:
            return {
                'error': f'API request failed with status code {response.status_code}'
            }
    except Exception as e:
        return {
            'error': f'Failed to generate song: {str(e)}'
        }

if __name__ == '__main__':
    app.run(debug=True)
