mirror of
https://github.com/TandoorRecipes/recipes.git
synced 2026-01-01 04:10:06 -05:00
Merge branch 'develop' into feature/vue3
This commit is contained in:
@@ -60,20 +60,20 @@ class NextcloudCookbook(Integration):
|
|||||||
step = Step.objects.create(
|
step = Step.objects.create(
|
||||||
instruction=s, space=self.request.space, show_ingredients_table=self.request.user.userpreference.show_step_ingredients,
|
instruction=s, space=self.request.space, show_ingredients_table=self.request.user.userpreference.show_step_ingredients,
|
||||||
)
|
)
|
||||||
if not ingredients_added:
|
|
||||||
if len(recipe_json['description'].strip()) > 500:
|
|
||||||
step.instruction = recipe_json['description'].strip() + '\n\n' + step.instruction
|
|
||||||
|
|
||||||
ingredients_added = True
|
ingredient_parser = IngredientParser(self.request, True)
|
||||||
|
if ingredients_added == False:
|
||||||
ingredient_parser = IngredientParser(self.request, True)
|
|
||||||
for ingredient in recipe_json['recipeIngredient']:
|
for ingredient in recipe_json['recipeIngredient']:
|
||||||
amount, unit, food, note = ingredient_parser.parse(ingredient)
|
ingredients_added = True
|
||||||
f = ingredient_parser.get_food(food)
|
if ingredient.startswith('##'):
|
||||||
u = ingredient_parser.get_unit(unit)
|
subheader = ingredient.replace('##', '', 1)
|
||||||
step.ingredients.add(Ingredient.objects.create(
|
step.ingredients.add(Ingredient.objects.create(note=subheader, is_header=True, no_amount=True, space=self.request.space))
|
||||||
food=f, unit=u, amount=amount, note=note, original_text=ingredient, space=self.request.space,
|
else:
|
||||||
))
|
amount, unit, food, note = ingredient_parser.parse(ingredient)
|
||||||
|
f = ingredient_parser.get_food(food)
|
||||||
|
u = ingredient_parser.get_unit(unit)
|
||||||
|
step.ingredients.add(Ingredient.objects.create(
|
||||||
|
food=f, unit=u, amount=amount, note=note, original_text=ingredient, space=self.request.space,))
|
||||||
recipe.steps.add(step)
|
recipe.steps.add(step)
|
||||||
|
|
||||||
if 'nutrition' in recipe_json:
|
if 'nutrition' in recipe_json:
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ import requests
|
|||||||
import validators
|
import validators
|
||||||
|
|
||||||
from cookbook.helper.ingredient_parser import IngredientParser
|
from cookbook.helper.ingredient_parser import IngredientParser
|
||||||
|
from cookbook.helper.recipe_url_import import parse_servings, parse_servings_text, parse_time
|
||||||
from cookbook.integration.integration import Integration
|
from cookbook.integration.integration import Integration
|
||||||
from cookbook.models import Ingredient, Keyword, Recipe, Step
|
from cookbook.models import Ingredient, Keyword, Recipe, Step
|
||||||
|
|
||||||
@@ -18,32 +19,38 @@ class Plantoeat(Integration):
|
|||||||
tags = None
|
tags = None
|
||||||
ingredients = []
|
ingredients = []
|
||||||
directions = []
|
directions = []
|
||||||
description = ''
|
fields = {}
|
||||||
for line in file.replace('\r', '').split('\n'):
|
for line in file.replace('\r', '').split('\n'):
|
||||||
if line.strip() != '':
|
if line.strip() != '':
|
||||||
if 'Title:' in line:
|
if 'Title:' in line:
|
||||||
title = line.replace('Title:', '').replace('"', '').strip()
|
fields['name'] = line.replace('Title:', '').replace('"', '').strip()
|
||||||
if 'Description:' in line:
|
if 'Description:' in line:
|
||||||
description = line.replace('Description:', '').strip()
|
fields['description'] = line.replace('Description:', '').strip()
|
||||||
if 'Source:' in line or 'Serves:' in line or 'Prep Time:' in line or 'Cook Time:' in line:
|
if 'Serves:' in line:
|
||||||
directions.append(line.strip() + '\n')
|
fields['servings'] = parse_servings(line.replace('Serves:', '').strip())
|
||||||
|
if 'Source:' in line:
|
||||||
|
fields['source_url'] = line.replace('Source:', '').strip()
|
||||||
if 'Photo Url:' in line:
|
if 'Photo Url:' in line:
|
||||||
image_url = line.replace('Photo Url:', '').strip()
|
image_url = line.replace('Photo Url:', '').strip()
|
||||||
|
if 'Prep Time:' in line:
|
||||||
|
fields['working_time'] = parse_time(line.replace('Prep Time:', '').strip())
|
||||||
|
if 'Cook Time:' in line:
|
||||||
|
fields['waiting_time'] = parse_time(line.replace('Cook Time:', '').strip())
|
||||||
if 'Tags:' in line:
|
if 'Tags:' in line:
|
||||||
tags = line.replace('Tags:', '').strip()
|
tags = line.replace('Tags:', '').strip()
|
||||||
if ingredient_mode:
|
|
||||||
if len(line) > 2 and 'Instructions:' not in line:
|
|
||||||
ingredients.append(line.strip())
|
|
||||||
if direction_mode:
|
|
||||||
if len(line) > 2:
|
|
||||||
directions.append(line.strip() + '\n')
|
|
||||||
if 'Ingredients:' in line:
|
if 'Ingredients:' in line:
|
||||||
ingredient_mode = True
|
ingredient_mode = True
|
||||||
if 'Directions:' in line:
|
if 'Directions:' in line:
|
||||||
ingredient_mode = False
|
ingredient_mode = False
|
||||||
direction_mode = True
|
direction_mode = True
|
||||||
|
if ingredient_mode:
|
||||||
|
if len(line) > 2 and 'Ingredients:' not in line:
|
||||||
|
ingredients.append(line.strip())
|
||||||
|
if direction_mode:
|
||||||
|
if len(line) > 2:
|
||||||
|
directions.append(line.strip() + '\n')
|
||||||
|
|
||||||
recipe = Recipe.objects.create(name=title, description=description, created_by=self.request.user, internal=True, space=self.request.space)
|
recipe = Recipe.objects.create(**fields, created_by=self.request.user, internal=True, space=self.request.space)
|
||||||
|
|
||||||
step = Step.objects.create(
|
step = Step.objects.create(
|
||||||
instruction='\n'.join(directions) + '\n\n', space=self.request.space, show_ingredients_table=self.request.user.userpreference.show_step_ingredients,
|
instruction='\n'.join(directions) + '\n\n', space=self.request.space, show_ingredients_table=self.request.user.userpreference.show_step_ingredients,
|
||||||
|
|||||||
@@ -4,7 +4,7 @@
|
|||||||
{% load custom_tags %}
|
{% load custom_tags %}
|
||||||
|
|
||||||
{% theme_values request as theme_values %}
|
{% theme_values request as theme_values %}
|
||||||
|
<!DOCTYPE html>
|
||||||
<html>
|
<html>
|
||||||
<head>
|
<head>
|
||||||
<title>{% block title %}
|
<title>{% block title %}
|
||||||
|
|||||||
Reference in New Issue
Block a user