Spaces:
Paused
Paused
| # utils.py | |
| from flask import request, jsonify | |
| from functools import wraps | |
| import os | |
| from dotenv import load_dotenv | |
| load_dotenv() | |
| def getenv_bool(name: str, default: bool = False) -> bool: | |
| return os.getenv(name, str(default)).lower() in ("yes", "y", "true", "1", "t") | |
| API_KEY = os.getenv('API_KEY', 'your_api_key_here') | |
| REQUIRE_API_KEY = getenv_bool('REQUIRE_API_KEY', True) | |
| def require_api_key(f): | |
| def decorated_function(*args, **kwargs): | |
| if not REQUIRE_API_KEY: | |
| return f(*args, **kwargs) | |
| auth_header = request.headers.get('Authorization') | |
| if not auth_header or not auth_header.startswith('Bearer '): | |
| return jsonify({"error": "Missing or invalid API key"}), 401 | |
| token = auth_header.split('Bearer ')[1] | |
| if token != API_KEY: | |
| return jsonify({"error": "Invalid API key"}), 401 | |
| return f(*args, **kwargs) | |
| return decorated_function | |
| # Mapping of audio format to MIME type | |
| AUDIO_FORMAT_MIME_TYPES = { | |
| "mp3": "audio/mpeg", | |
| "opus": "audio/ogg", | |
| "aac": "audio/aac", | |
| "flac": "audio/flac", | |
| "wav": "audio/wav", | |
| "pcm": "audio/L16" | |
| } | |