mirror of
https://github.com/Derpy-Leggies/OnlyLegs.git
synced 2024-12-29 10:56:10 +00:00
Move Flask configs to new file
This commit is contained in:
parent
8ae83a46c8
commit
e7cb14b67f
|
@ -19,46 +19,31 @@ from gallery import auth
|
||||||
|
|
||||||
# Configuration
|
# Configuration
|
||||||
import platformdirs
|
import platformdirs
|
||||||
from dotenv import load_dotenv
|
|
||||||
from yaml import safe_load
|
|
||||||
|
|
||||||
|
|
||||||
USER_DIR = platformdirs.user_config_dir("onlylegs")
|
INSTACE_DIR = os.path.join(platformdirs.user_config_dir("onlylegs"),
|
||||||
|
"instance")
|
||||||
|
|
||||||
|
|
||||||
def create_app(): # pylint: disable=R0914
|
def create_app(): # pylint: disable=R0914
|
||||||
"""
|
"""
|
||||||
Create and configure the main app
|
Create and configure the main app
|
||||||
"""
|
"""
|
||||||
app = Flask(__name__, instance_path=os.path.join(USER_DIR, "instance"))
|
app = Flask(__name__, instance_path=INSTACE_DIR)
|
||||||
|
app.config.from_pyfile("config.py")
|
||||||
# Get environment variables
|
|
||||||
load_dotenv(os.path.join(USER_DIR, ".env"))
|
|
||||||
print("Loaded environment variables")
|
|
||||||
|
|
||||||
# Get config file
|
|
||||||
with open(os.path.join(USER_DIR, "conf.yml"), encoding="utf-8", mode="r") as file:
|
|
||||||
conf = safe_load(file)
|
|
||||||
print("Loaded config")
|
|
||||||
|
|
||||||
# App configuration
|
|
||||||
app.config.from_mapping(
|
|
||||||
SECRET_KEY=os.environ.get("FLASK_SECRET"),
|
|
||||||
SQLALCHEMY_DATABASE_URI=("sqlite:///gallery.sqlite3"),
|
|
||||||
UPLOAD_FOLDER=os.path.join(USER_DIR, "uploads"),
|
|
||||||
ALLOWED_EXTENSIONS=conf["upload"]["allowed-extensions"],
|
|
||||||
MAX_CONTENT_LENGTH=1024 * 1024 * conf["upload"]["max-size"],
|
|
||||||
ADMIN_CONF=conf["admin"],
|
|
||||||
UPLOAD_CONF=conf["upload"],
|
|
||||||
WEBSITE_CONF=conf["website"],
|
|
||||||
)
|
|
||||||
|
|
||||||
db.init_app(app)
|
db.init_app(app)
|
||||||
migrate.init_app(app, db)
|
migrate.init_app(app, db)
|
||||||
|
|
||||||
|
# if database file doesn't exist, create it
|
||||||
|
if not os.path.exists(os.path.join(INSTACE_DIR, "gallery.sqlite3")):
|
||||||
|
print("Creating database")
|
||||||
|
with app.app_context():
|
||||||
|
db.create_all()
|
||||||
|
|
||||||
login_manager.init_app(app)
|
login_manager.init_app(app)
|
||||||
login_manager.login_view = "gallery.index"
|
login_manager.login_view = "gallery.index"
|
||||||
login_manager.session_protection = "strong"
|
login_manager.session_protection = "normal"
|
||||||
|
|
||||||
@login_manager.user_loader
|
@login_manager.user_loader
|
||||||
def load_user(user_id):
|
def load_user(user_id):
|
||||||
|
@ -105,5 +90,6 @@ def create_app(): # pylint: disable=R0914
|
||||||
cache.init_app(app)
|
cache.init_app(app)
|
||||||
compress.init_app(app)
|
compress.init_app(app)
|
||||||
|
|
||||||
|
print("Done!")
|
||||||
logging.info("Gallery started successfully!")
|
logging.info("Gallery started successfully!")
|
||||||
return app
|
return app
|
||||||
|
|
|
@ -9,14 +9,12 @@ import platformdirs
|
||||||
|
|
||||||
from flask import Blueprint, send_from_directory, abort, flash, request, current_app
|
from flask import Blueprint, send_from_directory, abort, flash, request, current_app
|
||||||
from werkzeug.utils import secure_filename
|
from werkzeug.utils import secure_filename
|
||||||
|
|
||||||
from flask_login import login_required, current_user
|
from flask_login import login_required, current_user
|
||||||
|
|
||||||
from colorthief import ColorThief
|
from colorthief import ColorThief
|
||||||
|
|
||||||
from gallery.extensions import db
|
from gallery.extensions import db
|
||||||
from gallery.models import Posts, Groups, GroupJunction
|
from gallery.models import Posts, Groups, GroupJunction
|
||||||
|
|
||||||
from gallery.utils import metadata as mt
|
from gallery.utils import metadata as mt
|
||||||
from gallery.utils.generate_image import generate_thumbnail
|
from gallery.utils.generate_image import generate_thumbnail
|
||||||
|
|
||||||
|
@ -131,7 +129,7 @@ def delete_image(image_id):
|
||||||
|
|
||||||
post = Posts.query.filter_by(id=image_id).first()
|
post = Posts.query.filter_by(id=image_id).first()
|
||||||
db.session.delete(post)
|
db.session.delete(post)
|
||||||
|
|
||||||
groups = GroupJunction.query.filter_by(post_id=image_id).all()
|
groups = GroupJunction.query.filter_by(post_id=image_id).all()
|
||||||
for group in groups:
|
for group in groups:
|
||||||
db.session.delete(group)
|
db.session.delete(group)
|
||||||
|
@ -180,10 +178,14 @@ def modify_group():
|
||||||
abort(403)
|
abort(403)
|
||||||
|
|
||||||
if action == "add":
|
if action == "add":
|
||||||
if not GroupJunction.query.filter_by(group_id=group_id, post_id=image_id).first():
|
if not GroupJunction.query.filter_by(
|
||||||
|
group_id=group_id, post_id=image_id
|
||||||
|
).first():
|
||||||
db.session.add(GroupJunction(group_id=group_id, post_id=image_id))
|
db.session.add(GroupJunction(group_id=group_id, post_id=image_id))
|
||||||
elif request.form["action"] == "remove":
|
elif request.form["action"] == "remove":
|
||||||
db.session.delete(GroupJunction.query.filter_by(group_id=group_id, post_id=image_id).first())
|
db.session.delete(
|
||||||
|
GroupJunction.query.filter_by(group_id=group_id, post_id=image_id).first()
|
||||||
|
)
|
||||||
|
|
||||||
db.session.commit()
|
db.session.commit()
|
||||||
|
|
||||||
|
@ -206,11 +208,11 @@ def delete_group():
|
||||||
|
|
||||||
group_del = Groups.query.filter_by(id=group_id).first()
|
group_del = Groups.query.filter_by(id=group_id).first()
|
||||||
db.session.delete(group_del)
|
db.session.delete(group_del)
|
||||||
|
|
||||||
junction_del = GroupJunction.query.filter_by(group_id=group_id).all()
|
junction_del = GroupJunction.query.filter_by(group_id=group_id).all()
|
||||||
for junction in junction_del:
|
for junction in junction_del:
|
||||||
db.session.delete(junction)
|
db.session.delete(junction)
|
||||||
|
|
||||||
db.session.commit()
|
db.session.commit()
|
||||||
|
|
||||||
flash(["Group yeeted!", "1"])
|
flash(["Group yeeted!", "1"])
|
||||||
|
|
36
gallery/config.py
Normal file
36
gallery/config.py
Normal file
|
@ -0,0 +1,36 @@
|
||||||
|
"""
|
||||||
|
Gallery configuration file
|
||||||
|
"""
|
||||||
|
import os
|
||||||
|
import platformdirs
|
||||||
|
from dotenv import load_dotenv
|
||||||
|
from yaml import safe_load
|
||||||
|
|
||||||
|
|
||||||
|
# Set dirs
|
||||||
|
user_dir = platformdirs.user_config_dir("onlylegs")
|
||||||
|
instance_dir = os.path.join(user_dir, "instance")
|
||||||
|
|
||||||
|
# Load environment variables
|
||||||
|
print("Loading environment variables...")
|
||||||
|
load_dotenv(os.path.join(user_dir, ".env"))
|
||||||
|
|
||||||
|
# Load config from user dir
|
||||||
|
print("Loading config...")
|
||||||
|
with open(os.path.join(user_dir, "conf.yml"), encoding="utf-8", mode="r") as file:
|
||||||
|
conf = safe_load(file)
|
||||||
|
|
||||||
|
|
||||||
|
# Flask config
|
||||||
|
SECRET_KEY = os.environ.get("FLASK_SECRET")
|
||||||
|
SQLALCHEMY_DATABASE_URI = "sqlite:///gallery.sqlite3"
|
||||||
|
|
||||||
|
# Upload config
|
||||||
|
MAX_CONTENT_LENGTH = 1024 * 1024 * conf["upload"]["max-size"]
|
||||||
|
UPLOAD_FOLDER = os.path.join(user_dir, "uploads")
|
||||||
|
ALLOWED_EXTENSIONS = conf["upload"]["allowed-extensions"]
|
||||||
|
|
||||||
|
# Pass YAML config to app
|
||||||
|
ADMIN_CONF = conf["admin"]
|
||||||
|
UPLOAD_CONF = conf["upload"]
|
||||||
|
WEBSITE_CONF = conf["website"]
|
|
@ -20,7 +20,7 @@
|
||||||
margin: 0 0 0 27rem
|
margin: 0 0 0 27rem
|
||||||
padding: 0
|
padding: 0
|
||||||
|
|
||||||
width: calc(100% - 25rem)
|
width: calc(100% - 27rem)
|
||||||
height: 100vh
|
height: 100vh
|
||||||
|
|
||||||
position: relative
|
position: relative
|
||||||
|
@ -78,4 +78,4 @@
|
||||||
.info-tab.collapsed .info-header
|
.info-tab.collapsed .info-header
|
||||||
border-radius: $rad
|
border-radius: $rad
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue