mirror of
https://github.com/hay-kot/mealie.git
synced 2025-08-22 14:33:33 -07:00
rename settings.py to app_config.py
This commit is contained in:
parent
fb44d4f806
commit
710e54f4cc
18 changed files with 79 additions and 31 deletions
1
.gitignore
vendored
1
.gitignore
vendored
|
@ -7,6 +7,7 @@ __pycache__/
|
||||||
docs/site/
|
docs/site/
|
||||||
mealie/temp/*
|
mealie/temp/*
|
||||||
mealie/temp/api.html
|
mealie/temp/api.html
|
||||||
|
.temp/
|
||||||
|
|
||||||
|
|
||||||
mealie/data/backups/*
|
mealie/data/backups/*
|
||||||
|
|
|
@ -3,9 +3,16 @@ from fastapi import FastAPI
|
||||||
from fastapi.staticfiles import StaticFiles
|
from fastapi.staticfiles import StaticFiles
|
||||||
|
|
||||||
import utils.startup as startup
|
import utils.startup as startup
|
||||||
from routes import (backup_routes, meal_routes, migration_routes,
|
from app_config import PORT, PRODUCTION, WEB_PATH, docs_url, redoc_url
|
||||||
recipe_routes, setting_routes, static_routes, user_routes)
|
from routes import (
|
||||||
from settings import PORT, PRODUCTION, WEB_PATH, docs_url, redoc_url
|
backup_routes,
|
||||||
|
meal_routes,
|
||||||
|
migration_routes,
|
||||||
|
recipe_routes,
|
||||||
|
setting_routes,
|
||||||
|
static_routes,
|
||||||
|
user_routes,
|
||||||
|
)
|
||||||
from utils.api_docs import generate_api_docs
|
from utils.api_docs import generate_api_docs
|
||||||
from utils.logger import logger
|
from utils.logger import logger
|
||||||
|
|
||||||
|
@ -19,11 +26,13 @@ app = FastAPI(
|
||||||
redoc_url=redoc_url,
|
redoc_url=redoc_url,
|
||||||
)
|
)
|
||||||
|
|
||||||
# Mount Vue Frontend only in production
|
|
||||||
if PRODUCTION:
|
def mount_static_files():
|
||||||
app.mount("/static", StaticFiles(directory=WEB_PATH, html=True))
|
app.mount("/static", StaticFiles(directory=WEB_PATH, html=True))
|
||||||
|
|
||||||
# API Routes
|
|
||||||
|
def api_routers():
|
||||||
|
# First
|
||||||
app.include_router(recipe_routes.router)
|
app.include_router(recipe_routes.router)
|
||||||
app.include_router(meal_routes.router)
|
app.include_router(meal_routes.router)
|
||||||
app.include_router(setting_routes.router)
|
app.include_router(setting_routes.router)
|
||||||
|
@ -31,6 +40,12 @@ app.include_router(backup_routes.router)
|
||||||
app.include_router(user_routes.router)
|
app.include_router(user_routes.router)
|
||||||
app.include_router(migration_routes.router)
|
app.include_router(migration_routes.router)
|
||||||
|
|
||||||
|
|
||||||
|
if PRODUCTION:
|
||||||
|
mount_static_files()
|
||||||
|
|
||||||
|
api_routers()
|
||||||
|
|
||||||
# API 404 Catch all CALL AFTER ROUTERS
|
# API 404 Catch all CALL AFTER ROUTERS
|
||||||
@app.get("/api/{full_path:path}", status_code=404, include_in_schema=False)
|
@app.get("/api/{full_path:path}", status_code=404, include_in_schema=False)
|
||||||
def invalid_api():
|
def invalid_api():
|
||||||
|
|
|
@ -20,7 +20,7 @@ DEBUG_DIR = DATA_DIR.joinpath("debug")
|
||||||
MIGRATION_DIR = DATA_DIR.joinpath("migration")
|
MIGRATION_DIR = DATA_DIR.joinpath("migration")
|
||||||
TEMPLATE_DIR = DATA_DIR.joinpath("templates")
|
TEMPLATE_DIR = DATA_DIR.joinpath("templates")
|
||||||
TINYDB_DIR = DATA_DIR.joinpath("db")
|
TINYDB_DIR = DATA_DIR.joinpath("db")
|
||||||
TEMP_DIR = DATA_DIR.joinpath("temp")
|
TEMP_DIR = DATA_DIR.joinpath(".temp")
|
||||||
|
|
||||||
REQUIRED_DIRS = [
|
REQUIRED_DIRS = [
|
||||||
DATA_DIR,
|
DATA_DIR,
|
Binary file not shown.
|
@ -2,7 +2,7 @@ import json
|
||||||
from typing import Union
|
from typing import Union
|
||||||
|
|
||||||
import mongoengine
|
import mongoengine
|
||||||
from settings import USE_MONGO, USE_SQL
|
from app_config import USE_MONGO, USE_SQL
|
||||||
from sqlalchemy.orm.session import Session
|
from sqlalchemy.orm.session import Session
|
||||||
|
|
||||||
from db.sql.db_session import create_session
|
from db.sql.db_session import create_session
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
from typing import List
|
from typing import List
|
||||||
|
|
||||||
from settings import USE_MONGO, USE_SQL
|
from app_config import USE_MONGO, USE_SQL
|
||||||
|
|
||||||
from db.db_base import BaseDocument
|
from db.db_base import BaseDocument
|
||||||
from db.db_setup import USE_MONGO, USE_SQL
|
from db.db_setup import USE_MONGO, USE_SQL
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
from settings import USE_MONGO, USE_SQL
|
from app_config import USE_MONGO, USE_SQL
|
||||||
|
|
||||||
from db.db_base import BaseDocument
|
from db.db_base import BaseDocument
|
||||||
from db.mongo.recipe_models import RecipeDocument
|
from db.mongo.recipe_models import RecipeDocument
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
from settings import USE_MONGO, USE_SQL
|
from app_config import USE_MONGO, USE_SQL
|
||||||
|
|
||||||
from db.db_base import BaseDocument
|
from db.db_base import BaseDocument
|
||||||
from db.db_setup import USE_MONGO, USE_SQL
|
from db.db_setup import USE_MONGO, USE_SQL
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
from settings import DATA_DIR, USE_MONGO, USE_SQL
|
from app_config import DATA_DIR, USE_MONGO, USE_SQL
|
||||||
|
|
||||||
from db.sql.db_session import globa_init as sql_global_init
|
from db.sql.db_session import globa_init as sql_global_init
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
from settings import USE_MONGO, USE_SQL
|
from app_config import USE_MONGO, USE_SQL
|
||||||
|
|
||||||
from db.db_base import BaseDocument
|
from db.db_base import BaseDocument
|
||||||
from db.db_setup import USE_MONGO, USE_SQL
|
from db.db_setup import USE_MONGO, USE_SQL
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
import mongoengine
|
import mongoengine
|
||||||
from settings import DB_HOST, DB_PASSWORD, DB_PORT, DB_USERNAME, MEALIE_DB_NAME
|
from app_config import DB_HOST, DB_PASSWORD, DB_PORT, DB_USERNAME, MEALIE_DB_NAME
|
||||||
from utils.logger import logger
|
from utils.logger import logger
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1,3 +1,4 @@
|
||||||
|
from datetime import datetime
|
||||||
from typing import List, Optional
|
from typing import List, Optional
|
||||||
|
|
||||||
from pydantic import BaseModel
|
from pydantic import BaseModel
|
||||||
|
@ -16,14 +17,45 @@ class BackupJob(BaseModel):
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
class LocalBackup(BaseModel):
|
||||||
|
name: str
|
||||||
|
date: datetime
|
||||||
|
|
||||||
|
|
||||||
class Imports(BaseModel):
|
class Imports(BaseModel):
|
||||||
imports: List[str]
|
imports: List[LocalBackup]
|
||||||
templates: List[str]
|
templates: List[str]
|
||||||
|
|
||||||
class Config:
|
class Config:
|
||||||
schema_extra = {
|
schema_extra = {
|
||||||
"example": {
|
"example": {
|
||||||
"imports": ["sample_data.zip", "sampe_data2.zip"],
|
"imports": [
|
||||||
|
{
|
||||||
|
"name": "AutoBackup_12-1-2020.zip",
|
||||||
|
"date": datetime.now(),
|
||||||
|
}
|
||||||
|
],
|
||||||
"templates": ["recipes.md", "custom_template.md"],
|
"templates": ["recipes.md", "custom_template.md"],
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
class ImportJob(BaseModel):
|
||||||
|
name: str
|
||||||
|
recipes: bool
|
||||||
|
force: bool = False
|
||||||
|
rebase: bool = False
|
||||||
|
themes: bool = False
|
||||||
|
settings: bool = False
|
||||||
|
|
||||||
|
class Config:
|
||||||
|
schema_extra = {
|
||||||
|
"example": {
|
||||||
|
"name": "my_local_backup.zip",
|
||||||
|
"recipes": True,
|
||||||
|
"force": False,
|
||||||
|
"rebase": False,
|
||||||
|
"themes": False,
|
||||||
|
"settings": False
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
@ -7,7 +7,7 @@ from jinja2 import Template
|
||||||
from services.meal_services import MealPlan
|
from services.meal_services import MealPlan
|
||||||
from services.recipe_services import Recipe
|
from services.recipe_services import Recipe
|
||||||
from services.settings_services import SiteSettings, SiteTheme
|
from services.settings_services import SiteSettings, SiteTheme
|
||||||
from settings import BACKUP_DIR, IMG_DIR, TEMP_DIR, TEMPLATE_DIR
|
from app_config import BACKUP_DIR, IMG_DIR, TEMP_DIR, TEMPLATE_DIR
|
||||||
from utils.logger import logger
|
from utils.logger import logger
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -6,7 +6,7 @@ from typing import List
|
||||||
|
|
||||||
from services.recipe_services import Recipe
|
from services.recipe_services import Recipe
|
||||||
from services.settings_services import SiteSettings, SiteTheme
|
from services.settings_services import SiteSettings, SiteTheme
|
||||||
from settings import BACKUP_DIR, IMG_DIR, TEMP_DIR
|
from app_config import BACKUP_DIR, IMG_DIR, TEMP_DIR
|
||||||
from utils.logger import logger
|
from utils.logger import logger
|
||||||
|
|
||||||
|
|
||||||
|
@ -74,7 +74,6 @@ class ImportDatabase:
|
||||||
recipe_dict = json.loads(f.read())
|
recipe_dict = json.loads(f.read())
|
||||||
recipe_dict = ImportDatabase._recipe_migration(recipe_dict)
|
recipe_dict = ImportDatabase._recipe_migration(recipe_dict)
|
||||||
|
|
||||||
|
|
||||||
recipe_obj = Recipe(**recipe_dict)
|
recipe_obj = Recipe(**recipe_dict)
|
||||||
recipe_obj.save_to_db()
|
recipe_obj.save_to_db()
|
||||||
successful_imports.append(recipe.stem)
|
successful_imports.append(recipe.stem)
|
||||||
|
|
|
@ -4,7 +4,7 @@ from pathlib import Path
|
||||||
import git
|
import git
|
||||||
import yaml
|
import yaml
|
||||||
from services.recipe_services import Recipe
|
from services.recipe_services import Recipe
|
||||||
from settings import IMG_DIR
|
from app_config import IMG_DIR
|
||||||
|
|
||||||
try:
|
try:
|
||||||
from yaml import CLoader as Loader
|
from yaml import CLoader as Loader
|
||||||
|
|
|
@ -6,7 +6,7 @@ from pathlib import Path
|
||||||
|
|
||||||
from services.recipe_services import Recipe
|
from services.recipe_services import Recipe
|
||||||
from services.scrape_services import normalize_data, process_recipe_data
|
from services.scrape_services import normalize_data, process_recipe_data
|
||||||
from settings import IMG_DIR, TEMP_DIR
|
from app_config import IMG_DIR, TEMP_DIR
|
||||||
|
|
||||||
CWD = Path(__file__).parent
|
CWD = Path(__file__).parent
|
||||||
MIGRTAION_DIR = CWD.parent.parent.joinpath("data", "migration")
|
MIGRTAION_DIR = CWD.parent.parent.joinpath("data", "migration")
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
import json
|
import json
|
||||||
|
|
||||||
from settings import BASE_DIR
|
from app_config import BASE_DIR
|
||||||
|
|
||||||
"""Script to export the ReDoc documentation page into a standalone HTML file."""
|
"""Script to export the ReDoc documentation page into a standalone HTML file."""
|
||||||
|
|
||||||
|
@ -31,10 +31,11 @@ HTML_TEMPLATE = """<!DOCTYPE html>
|
||||||
</html>
|
</html>
|
||||||
"""
|
"""
|
||||||
|
|
||||||
out_path = BASE_DIR.joinpath("temp", "index.html")
|
|
||||||
|
|
||||||
|
|
||||||
def generate_api_docs(app):
|
def generate_api_docs(app):
|
||||||
|
out_dir = BASE_DIR.joinpath(".temp")
|
||||||
|
out_dir.mkdir(parents=True, exist_ok=True)
|
||||||
|
out_path = out_dir.joinpath("index.html")
|
||||||
with open(out_path, "w") as fd:
|
with open(out_path, "w") as fd:
|
||||||
out_path.parent.mkdir(exist_ok=True)
|
out_path.parent.mkdir(exist_ok=True)
|
||||||
print(HTML_TEMPLATE % json.dumps(app.openapi()), file=fd)
|
print(HTML_TEMPLATE % json.dumps(app.openapi()), file=fd)
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
|
|
||||||
from settings import REQUIRED_DIRS
|
from app_config import REQUIRED_DIRS
|
||||||
|
|
||||||
CWD = Path(__file__).parent
|
CWD = Path(__file__).parent
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue