From b1db591e9fbe59be1bc88f57b37cb9cd0fc2a12c Mon Sep 17 00:00:00 2001 From: vabene1111 Date: Mon, 7 Jun 2021 17:17:34 +0200 Subject: [PATCH] fixed importer description overflow --- cookbook/integration/mealie.py | 7 ++++++- cookbook/integration/nextcloud_cookbook.py | 7 ++++++- cookbook/integration/paprika.py | 9 ++++++--- 3 files changed, 18 insertions(+), 5 deletions(-) diff --git a/cookbook/integration/mealie.py b/cookbook/integration/mealie.py index 198883c88..a67640e00 100644 --- a/cookbook/integration/mealie.py +++ b/cookbook/integration/mealie.py @@ -16,8 +16,10 @@ class Mealie(Integration): def get_recipe_from_file(self, file): recipe_json = json.loads(file.getvalue().decode("utf-8")) + description = '' if len(recipe_json['description'].strip()) > 500 else recipe_json['description'].strip() + recipe = Recipe.objects.create( - name=recipe_json['name'].strip(), description=recipe_json['description'].strip(), + name=recipe_json['name'].strip(), description=description, created_by=self.request.user, internal=True, space=self.request.space) # TODO parse times (given in PT2H3M ) @@ -30,6 +32,9 @@ class Mealie(Integration): if not ingredients_added: ingredients_added = True + if len(recipe_json['description'].strip()) > 500: + step.instruction = recipe_json['description'].strip() + '\n\n' + step.instruction + for ingredient in recipe_json['recipeIngredient']: amount, unit, ingredient, note = parse(ingredient) f = get_food(ingredient, self.request.space) diff --git a/cookbook/integration/nextcloud_cookbook.py b/cookbook/integration/nextcloud_cookbook.py index ae47b2df5..e52e383fa 100644 --- a/cookbook/integration/nextcloud_cookbook.py +++ b/cookbook/integration/nextcloud_cookbook.py @@ -16,8 +16,10 @@ class NextcloudCookbook(Integration): def get_recipe_from_file(self, file): recipe_json = json.loads(file.getvalue().decode("utf-8")) + description = '' if len(recipe_json['description'].strip()) > 500 else recipe_json['description'].strip() + recipe = Recipe.objects.create( - name=recipe_json['name'].strip(), description=recipe_json['description'].strip(), + name=recipe_json['name'].strip(), description=description, created_by=self.request.user, internal=True, servings=recipe_json['recipeYield'], space=self.request.space) @@ -30,6 +32,9 @@ class NextcloudCookbook(Integration): instruction=s ) if not ingredients_added: + if len(recipe_json['description'].strip()) > 500: + step.instruction = recipe_json['description'].strip() + '\n\n' + step.instruction + ingredients_added = True for ingredient in recipe_json['recipeIngredient']: diff --git a/cookbook/integration/paprika.py b/cookbook/integration/paprika.py index ffe587c95..40dcc0e80 100644 --- a/cookbook/integration/paprika.py +++ b/cookbook/integration/paprika.py @@ -23,10 +23,10 @@ class Paprika(Integration): name=recipe_json['name'].strip(), created_by=self.request.user, internal=True, space=self.request.space) if 'description' in recipe_json: - recipe.description = recipe_json['description'].strip() + recipe.description = '' if len(recipe_json['description'].strip()) > 500 else recipe_json['description'].strip() try: - if re.match(r'([0-9])+\s(.)*', recipe_json['servings'] ): + if re.match(r'([0-9])+\s(.)*', recipe_json['servings']): s = recipe_json['servings'].split(' ') recipe.servings = s[0] recipe.servings_text = s[1] @@ -58,6 +58,9 @@ class Paprika(Integration): instruction=instructions ) + if len(recipe_json['description'].strip()) > 500: + step.instruction = recipe_json['description'].strip() + '\n\n' + step.instruction + if 'categories' in recipe_json: for c in recipe_json['categories']: keyword, created = Keyword.objects.get_or_create(name=c.strip(), space=self.request.space) @@ -79,5 +82,5 @@ class Paprika(Integration): if recipe_json.get("photo_data", None): self.import_recipe_image(recipe, BytesIO(base64.b64decode(recipe_json['photo_data']))) - + return recipe