Artberry-web/config.py
2025-04-20 23:35:38 +03:00

48 lines
1.8 KiB
Python

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