"""
Simple script to test Eric's downbeats API
"""

import json
import sys
import requests


def fetch_downbeats(clip_id: str) -> dict:
    url = f"https://suno-ai--eric-downbeats-dev-web.modal.run/downbeats/{clip_id}"

    print(f"Fetching downbeats for clip: {clip_id}")
    print(f"URL: {url}\n")

    response = requests.get(url)
    response.raise_for_status()

    data = response.json()

    if data.get("error"):
        raise Exception(data["error"])

    return data


def main():
    clip_id = sys.argv[1] if len(sys.argv) > 1 else "4caf7456-ef0b-4411-928d-8c2078c62b82"

    try:
        result = fetch_downbeats(clip_id)

        print("=== Results ===")
        print(f"BPM: {result.get('bpm')}")
        print(f"Number of downbeats: {len(result.get('downbeats', []))}\n")

        print("=== Downbeat Timestamps (seconds) ===")
        timestamps = [time for time, _ in result.get("downbeats", [])]
        for i, time in enumerate(timestamps, 1):
            print(f"{i}. {time:.5f}s")

        print("\n=== Full Response ===")
        print(json.dumps(result, indent=2))

    except Exception as e:
        print(f"Error: {e}", file=sys.stderr)
        sys.exit(1)


if __name__ == "__main__":
    main()

