import os from dotenv import load_dotenv, find_dotenv from authlib.integrations.flask_client import OAuth dotenv_path = find_dotenv() load_dotenv(dotenv_path, override=True) class Config: SECRET_KEY = os.getenv('SECRET_KEY') WTF_CSRF_ENABLED = True RECAPTCHA_PUBLIC_KEY = os.getenv('RECAPTCHA_PUBLIC_KEY') RECAPTCHA_PRIVATE_KEY = os.getenv('RECAPTCHA_PRIVATE_KEY') SQLALCHEMY_DATABASE_URI = os.getenv('SQLALCHEMY_DATABASE_URI') SQLALCHEMY_TRACK_MODIFICATIONS = False BASE_DOMAIN = os.getenv('BASE_DOMAIN', 'http://localhost:5000') GOOGLE_REDIRECT_URI = f"{BASE_DOMAIN}/auth/google/callback" UPLOAD_FOLDER = { 'images': 'static/arts/', 'arts': 'static/arts/', 'videos': 'static/videos/', 'thumbnails': 'static/thumbnails/', 'avatars': 'static/avatars/', 'banners': 'static/banners/', 'comics': 'static/comics', 'comicthumbs': 'static/comicthumbs/', 'posts': 'static/posts/' } ALLOWED_IMAGE_EXTENSIONS = {'png', 'jpg', 'jpeg', 'gif', 'webp'} ALLOWED_VIDEO_EXTENSIONS = {'mp4', 'avi', 'mov'} MAX_IMAGE_SIZE = 15 * 1024 * 1024 MAX_VIDEO_SIZE = 10 * 1024 * 1024 * 1024 GOOGLE_CLIENT_ID = os.getenv('GOOGLE_CLIENT_ID') GOOGLE_CLIENT_SECRET = os.getenv('GOOGLE_CLIENT_SECRET') GOOGLE_REDIRECT_URI = os.getenv('GOOGLE_REDIRECT_URI', 'http://localhost:5000/auth/google/callback') def configure_oauth(app): oauth = OAuth(app) oauth.register( name='google', client_id=Config.GOOGLE_CLIENT_ID, client_secret=Config.GOOGLE_CLIENT_SECRET, server_metadata_url='https://accounts.google.com/.well-known/openid-configuration', client_kwargs={ 'scope': 'openid profile' } ) return oauth