fixed and improved URL import
This commit is contained in:
@ -164,16 +164,22 @@ def find_recipe_json(ld_json, url):
|
|||||||
ld_json['image'] = ''
|
ld_json['image'] = ''
|
||||||
|
|
||||||
if 'cookTime' in ld_json:
|
if 'cookTime' in ld_json:
|
||||||
|
try:
|
||||||
if type(ld_json['cookTime']) == list and len(ld_json['cookTime']) > 0:
|
if type(ld_json['cookTime']) == list and len(ld_json['cookTime']) > 0:
|
||||||
ld_json['cookTime'] = ld_json['cookTime'][0]
|
ld_json['cookTime'] = ld_json['cookTime'][0]
|
||||||
ld_json['cookTime'] = round(parse_duration(ld_json['cookTime']).seconds / 60)
|
ld_json['cookTime'] = round(parse_duration(ld_json['cookTime']).seconds / 60)
|
||||||
|
except TypeError:
|
||||||
|
ld_json['cookTime'] = 0
|
||||||
else:
|
else:
|
||||||
ld_json['cookTime'] = 0
|
ld_json['cookTime'] = 0
|
||||||
|
|
||||||
if 'prepTime' in ld_json:
|
if 'prepTime' in ld_json:
|
||||||
|
try:
|
||||||
if type(ld_json['prepTime']) == list and len(ld_json['prepTime']) > 0:
|
if type(ld_json['prepTime']) == list and len(ld_json['prepTime']) > 0:
|
||||||
ld_json['prepTime'] = ld_json['prepTime'][0]
|
ld_json['prepTime'] = ld_json['prepTime'][0]
|
||||||
ld_json['prepTime'] = round(parse_duration(ld_json['prepTime']).seconds / 60)
|
ld_json['prepTime'] = round(parse_duration(ld_json['prepTime']).seconds / 60)
|
||||||
|
except TypeError:
|
||||||
|
ld_json['prepTime'] = 0
|
||||||
else:
|
else:
|
||||||
ld_json['prepTime'] = 0
|
ld_json['prepTime'] = 0
|
||||||
|
|
||||||
|
@ -100,13 +100,18 @@ def import_url(request):
|
|||||||
|
|
||||||
recipe = Recipe.objects.create(
|
recipe = Recipe.objects.create(
|
||||||
name=data['name'],
|
name=data['name'],
|
||||||
instructions=data['recipeInstructions'],
|
|
||||||
waiting_time=data['cookTime'],
|
waiting_time=data['cookTime'],
|
||||||
working_time=data['prepTime'],
|
working_time=data['prepTime'],
|
||||||
internal=True,
|
internal=True,
|
||||||
created_by=request.user,
|
created_by=request.user,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
step = Step.objects.create(
|
||||||
|
instruction=data['recipeInstructions'],
|
||||||
|
)
|
||||||
|
|
||||||
|
recipe.steps.add(step)
|
||||||
|
|
||||||
for kw in data['keywords']:
|
for kw in data['keywords']:
|
||||||
if kw['id'] != "null" and (k := Keyword.objects.filter(id=kw['id']).first()):
|
if kw['id'] != "null" and (k := Keyword.objects.filter(id=kw['id']).first()):
|
||||||
recipe.keywords.add(k)
|
recipe.keywords.add(k)
|
||||||
@ -115,7 +120,7 @@ def import_url(request):
|
|||||||
recipe.keywords.add(k)
|
recipe.keywords.add(k)
|
||||||
|
|
||||||
for ing in data['recipeIngredient']:
|
for ing in data['recipeIngredient']:
|
||||||
i, i_created = Food.objects.get_or_create(name=ing['ingredient']['text'])
|
f, f_created = Food.objects.get_or_create(name=ing['ingredient']['text'])
|
||||||
if ing['unit']:
|
if ing['unit']:
|
||||||
u, u_created = Unit.objects.get_or_create(name=ing['unit']['text'])
|
u, u_created = Unit.objects.get_or_create(name=ing['unit']['text'])
|
||||||
else:
|
else:
|
||||||
@ -128,7 +133,7 @@ def import_url(request):
|
|||||||
# TODO return proper error
|
# TODO return proper error
|
||||||
pass
|
pass
|
||||||
|
|
||||||
Ingredient.objects.create(recipe=recipe, ingredient=i, unit=u, amount=ing['amount'])
|
step.ingredients.add(Ingredient.objects.create(food=f, unit=u, amount=ing['amount']))
|
||||||
|
|
||||||
if data['image'] != '':
|
if data['image'] != '':
|
||||||
response = requests.get(data['image'])
|
response = requests.get(data['image'])
|
||||||
|
Reference in New Issue
Block a user