ee96104f66
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com>
95 lines
4.1 KiB
Python
95 lines
4.1 KiB
Python
import os
|
|
import openai
|
|
from dotenv import load_dotenv
|
|
import tempfile
|
|
from datetime import timedelta
|
|
|
|
# Load environment variables from .env file
|
|
load_dotenv()
|
|
|
|
# Set up OpenAI API key
|
|
openai.api_key = os.getenv("OPENAI_API_KEY")
|
|
|
|
# Get the base directory of the application
|
|
basedir = os.path.abspath(os.path.dirname(__file__))
|
|
|
|
class Config:
|
|
# Debug settings
|
|
DEBUG = os.getenv("DEBUG", "True") == "True"
|
|
DEBUG2 = os.getenv("DEBUG2", "False") == "True"
|
|
SECRET_KEY = os.getenv('SECRET_KEY')
|
|
if not SECRET_KEY:
|
|
raise ValueError("SECRET_KEY environment variable must be set. Generate a secure key with: python -c 'import secrets; print(secrets.token_hex(32))'")
|
|
|
|
# API Keys
|
|
OPENAI_API_KEY = os.getenv("OPENAI_API_KEY")
|
|
DEEPL_API_KEY = os.getenv("DEEPL_API_KEY")
|
|
MEANINGCLOUD_API_KEY = os.getenv("MEANINGCLOUD_API_KEY")
|
|
LASTFM_API_KEY = os.getenv("LASTFM_API_KEY")
|
|
ACRCLOUD_TOKEN = os.getenv("ACRCLOUD_TOKEN")
|
|
ELEVENLABS_API_KEY = os.getenv("ELEVENLABS_API_KEY")
|
|
OPENAI_URL = os.getenv("OPENAI_URL", "https://api.openai.com/v1")
|
|
OPENAI_MODEL = os.getenv("OPENAI_MODEL", "gpt-4o-mini")
|
|
OPENAI_SEARCH_MODEL = os.getenv("OPENAI_SEARCH_MODEL", "gpt-4o-mini-search")
|
|
|
|
SQLALCHEMY_DATABASE_URI = os.environ.get('SQLALCHEMY_DATABASE_URI')
|
|
SQLALCHEMY_TRACK_MODIFICATIONS = False
|
|
|
|
|
|
# Spotify API credentials
|
|
SPOTIFY_CLIENT_ID = os.getenv("SPOTIFY_CLIENT_ID")
|
|
SPOTIFY_CLIENT_SECRET = os.getenv("SPOTIFY_CLIENT_SECRET")
|
|
SPOTIFY_REDIRECT_URI = os.getenv("SPOTIFY_REDIRECT_URI")
|
|
SPOTIFY_SCOPE = "playlist-read-private playlist-read-collaborative user-library-read user-top-read user-read-private user-read-email user-read-recently-played user-follow-read playlist-modify-public playlist-modify-private"
|
|
|
|
# Deezer API credentials
|
|
DEEZER_APP_ID = os.getenv("DEEZER_APP_ID", "")
|
|
DEEZER_APP_SECRET = os.getenv("DEEZER_APP_SECRET", "")
|
|
DEEZER_REDIRECT_URI = os.getenv("DEEZER_REDIRECT_URI", "http://localhost:5000/deezer-callback")
|
|
|
|
# Google OAuth credentials
|
|
GOOGLE_CLIENT_ID = os.getenv("GOOGLE_CLIENT_ID", "")
|
|
GOOGLE_CLIENT_SECRET = os.getenv("GOOGLE_CLIENT_SECRET", "")
|
|
|
|
# Authentik OAuth credentials
|
|
AUTHENTIK_CLIENT_ID = os.getenv("AUTHENTIK_CLIENT_ID", "")
|
|
AUTHENTIK_CLIENT_SECRET = os.getenv("AUTHENTIK_CLIENT_SECRET", "")
|
|
AUTHENTIK_METADATA_URL = os.getenv("AUTHENTIK_METADATA_URL", "")
|
|
|
|
# Dropbox OAuth credentials
|
|
DROPBOX_APP_KEY = os.getenv("DROPBOX_APP_KEY", "")
|
|
DROPBOX_APP_SECRET = os.getenv("DROPBOX_APP_SECRET", "")
|
|
DROPBOX_REDIRECT_URI = os.getenv("DROPBOX_REDIRECT_URI", "http://localhost:5000/users/dropbox/callback")
|
|
|
|
MAIL_HOST = os.getenv("MAIL_HOST", "localhost")
|
|
try:
|
|
MAIL_PORT = int(os.getenv("MAIL_PORT", "25"))
|
|
except (ValueError, TypeError):
|
|
MAIL_PORT = 25
|
|
MAIL_USE_TLS = os.getenv("MAIL_USE_TLS", "False") == "True"
|
|
MAIL_USE_SSL = os.getenv("MAIL_USE_SSL", "False") == "True"
|
|
MAIL_USERNAME = os.getenv("MAIL_USERNAME", "")
|
|
MAIL_PASSWORD = os.getenv("MAIL_PASSWORD", "")
|
|
MAIL_SENDER = os.getenv("MAIL_SENDER", "quizzical-beats@example.com")
|
|
MAIL_RECIPIENT = os.getenv("MAIL_RECIPIENT", "admin@example.com")
|
|
|
|
# Automation settings
|
|
AUTOMATION_TOKEN = os.getenv("AUTOMATION_TOKEN")
|
|
if not AUTOMATION_TOKEN:
|
|
raise ValueError("AUTOMATION_TOKEN environment variable must be set. Generate a secure token with: python -c 'import secrets; print(secrets.token_urlsafe(32))'")
|
|
|
|
# Reverse proxy settings
|
|
USE_HTTPS = os.getenv("USE_HTTPS", "False") == "True" # Force HTTPS URL generation
|
|
PREFERRED_URL_SCHEME = os.getenv("PREFERRED_URL_SCHEME", 'https' if USE_HTTPS else 'http')
|
|
|
|
# Static OAuth URL configuration (for production environments)
|
|
STATIC_OAUTH_URLS = os.getenv("STATIC_OAUTH_URLS", "False") == "True"
|
|
OAUTH_SPOTIFY_AUTH_URL = os.getenv("OAUTH_SPOTIFY_AUTH_URL")
|
|
OAUTH_SPOTIFY_LINK_URL = os.getenv("OAUTH_SPOTIFY_LINK_URL")
|
|
OAUTH_GOOGLE_URL = os.getenv("OAUTH_GOOGLE_URL")
|
|
OAUTH_AUTHENTIK_URL = os.getenv("OAUTH_AUTHENTIK_URL")
|
|
OAUTH_DROPBOX_URL = os.getenv("OAUTH_DROPBOX_URL")
|
|
|
|
|
|
|