48 lines
1.8 KiB
Python
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 |