mirror of
https://github.com/hay-kot/mealie.git
synced 2025-08-22 14:33:33 -07:00
fix delete and import errors
This commit is contained in:
parent
73386ccadf
commit
87f86d5d7f
3 changed files with 20 additions and 9 deletions
|
@ -5,7 +5,7 @@ from mealie.db.db_setup import generate_session
|
|||
from mealie.routes.deps import get_current_user
|
||||
from mealie.schema.recipe import Recipe, RecipeURLIn
|
||||
from mealie.services.image.image import scrape_image, write_image
|
||||
from mealie.services.recipe.asset import check_asset
|
||||
from mealie.services.recipe.media import check_assets, delete_assets
|
||||
from mealie.services.scraper.scraper import create_from_url
|
||||
from sqlalchemy.orm.session import Session
|
||||
|
||||
|
@ -59,7 +59,7 @@ def update_recipe(
|
|||
print(recipe.assets)
|
||||
|
||||
if recipe_slug != recipe.slug:
|
||||
check_asset(original_slug=recipe_slug, recipe=recipe)
|
||||
check_assets(original_slug=recipe_slug, recipe=recipe)
|
||||
|
||||
return recipe
|
||||
|
||||
|
@ -77,7 +77,7 @@ def patch_recipe(
|
|||
session, recipe_slug, new_data=data.dict(exclude_unset=True, exclude_defaults=True)
|
||||
)
|
||||
if recipe_slug != recipe.slug:
|
||||
check_asset(original_slug=recipe_slug, recipe=recipe)
|
||||
check_assets(original_slug=recipe_slug, recipe=recipe)
|
||||
|
||||
return recipe
|
||||
|
||||
|
@ -91,9 +91,9 @@ def delete_recipe(
|
|||
""" Deletes a recipe by slug """
|
||||
|
||||
try:
|
||||
delete_data = db.recipes.delete(session, recipe_slug)
|
||||
|
||||
return delete_data
|
||||
recipes = db.recipes.delete(session, recipe_slug)
|
||||
delete_assets(recipe_slug=recipe_slug)
|
||||
return recipes
|
||||
except Exception:
|
||||
raise HTTPException(status.HTTP_400_BAD_REQUEST)
|
||||
|
||||
|
|
|
@ -108,7 +108,7 @@ class ImportDatabase:
|
|||
def _import_images(self, successful_imports: list[Recipe]):
|
||||
image_dir = self.import_dir.joinpath("images")
|
||||
|
||||
if image_dir.exists():
|
||||
if image_dir.exists(): # Migrate from before v0.5.0
|
||||
for image in image_dir.iterdir():
|
||||
item: Recipe = successful_imports.get(image.stem)
|
||||
|
||||
|
@ -121,6 +121,10 @@ class ImportDatabase:
|
|||
if image.is_file():
|
||||
shutil.copy(image, dest_dir)
|
||||
|
||||
else:
|
||||
recipe_dir = self.import_dir.joinpath("recipes")
|
||||
shutil.copytree(recipe_dir, app_dirs.RECIPE_DATA_DIR, dirs_exist_ok=True)
|
||||
|
||||
minify.migrate_images()
|
||||
|
||||
def import_themes(self):
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
from pathlib import Path
|
||||
from shutil import copytree, rmtree
|
||||
|
||||
from mealie.core.config import app_dirs
|
||||
from mealie.core.root_logger import get_logger
|
||||
|
@ -7,16 +8,22 @@ from mealie.schema.recipe import Recipe
|
|||
logger = get_logger()
|
||||
|
||||
|
||||
def check_asset(original_slug, recipe: Recipe) -> Path:
|
||||
def check_assets(original_slug, recipe: Recipe) -> Path:
|
||||
if original_slug == recipe.slug:
|
||||
return recipe.assets
|
||||
|
||||
current_dir = app_dirs.RECIPE_DATA_DIR.joinpath(original_slug)
|
||||
|
||||
try:
|
||||
current_dir.rename(recipe.directory)
|
||||
copytree(current_dir, recipe.directory, dirs_exist_ok=True)
|
||||
|
||||
except FileNotFoundError:
|
||||
logger.error(f"Recipe Directory not Found: {original_slug}")
|
||||
logger.info(f"Renaming Recipe Directory: {original_slug} -> {recipe.slug}")
|
||||
|
||||
return current_dir.absolute()
|
||||
|
||||
|
||||
def delete_assets(recipe_slug):
|
||||
recipe_dir = Recipe(slug=recipe_slug).directory
|
||||
rmtree(recipe_dir, ignore_errors=True)
|
Loading…
Add table
Add a link
Reference in a new issue