65 lines
2.4 KiB
Python
65 lines
2.4 KiB
Python
# config.py - Application Configuration
|
|
|
|
import os
|
|
import uuid
|
|
from dotenv import load_dotenv
|
|
|
|
load_dotenv()
|
|
|
|
# --- PATHS ---
|
|
BASE_DIR = os.path.dirname(os.path.abspath(__file__))
|
|
STATIC_FOLDER = 'static'
|
|
STATIC_URL_PATH = '/static'
|
|
|
|
# --- DATABASE ---
|
|
# Production-এ env থেকে আসবে: /opt/apps/Audiobook-Maker-Pro-v4.2/audiobook_maker.db
|
|
# Dev-এ env না থাকলে app.py-র পাশে রাখবে
|
|
DATABASE = os.getenv('DATABASE', os.path.join(BASE_DIR, 'audiobook_maker.db'))
|
|
|
|
# --- MEDIA STORAGE (v4.3) ---
|
|
# ডেটাবেসের পাশেই media-storage ফোল্ডার রাখি যাতে একই persistent volume-এ থাকে
|
|
_DB_DIR = os.path.dirname(os.path.abspath(DATABASE))
|
|
MEDIA_STORAGE_DIR = os.getenv('MEDIA_STORAGE_DIR', os.path.join(_DB_DIR, 'media-storage'))
|
|
|
|
# --- FLASK SECRET KEY ---
|
|
SECRET_KEY = os.getenv('SECRET_KEY', 'audiobook-maker-pro-' + str(uuid.uuid4()))
|
|
|
|
# --- BEAM CLOUD API CONFIGURATION ---
|
|
BEAM_COMBINED_URL = os.getenv('BEAM_COMBINED_URL', '')
|
|
BEAM_API_TOKEN = os.getenv('BEAM_API_TOKEN', '')
|
|
|
|
# --- OPENAI API (optional) ---
|
|
OPENAI_API_KEY = os.getenv('OPENAI_API_KEY', '')
|
|
|
|
# --- API HEADERS ---
|
|
def get_beam_headers():
|
|
return {'Authorization': f'Bearer {BEAM_API_TOKEN}'}
|
|
|
|
def get_beam_headers_json():
|
|
return {
|
|
'Authorization': f'Bearer {BEAM_API_TOKEN}',
|
|
'Content-Type': 'application/json'
|
|
}
|
|
|
|
# --- VOICE OPTIONS ---
|
|
VOICES = [
|
|
{'id': 'af_alloy', 'name': 'Alloy (US Female)'},
|
|
{'id': 'af_aoede', 'name': 'Aoede (US Female)'},
|
|
{'id': 'af_bella', 'name': 'Bella (US Female)'},
|
|
{'id': 'af_heart', 'name': 'Heart (US Female)'},
|
|
{'id': 'af_jessica', 'name': 'Jessica (US Female)'},
|
|
{'id': 'af_nicole', 'name': 'Nicole (US Female)'},
|
|
{'id': 'af_nova', 'name': 'Nova (US Female)'},
|
|
{'id': 'af_river', 'name': 'River (US Female)'},
|
|
{'id': 'af_sarah', 'name': 'Sarah (US Female)'},
|
|
{'id': 'af_sky', 'name': 'Sky (US Female)'},
|
|
{'id': 'am_adam', 'name': 'Adam (US Male)'},
|
|
{'id': 'am_echo', 'name': 'Echo (US Male)'},
|
|
{'id': 'am_eric', 'name': 'Eric (US Male)'},
|
|
{'id': 'am_michael', 'name': 'Michael (US Male)'},
|
|
{'id': 'bf_emma', 'name': 'Emma (UK Female)'},
|
|
{'id': 'bf_isabella', 'name': 'Isabella (UK Female)'},
|
|
{'id': 'bm_daniel', 'name': 'Daniel (UK Male)'},
|
|
{'id': 'bm_george', 'name': 'George (UK Male)'},
|
|
]
|