diff --git a/cookbook/helper/recipe_url_import.py b/cookbook/helper/recipe_url_import.py index ab421e38..0eae969a 100644 --- a/cookbook/helper/recipe_url_import.py +++ b/cookbook/helper/recipe_url_import.py @@ -214,7 +214,7 @@ def find_recipe_json(ld_json, url, space): for key in list(ld_json): if key not in [ 'prepTime', 'cookTime', 'image', 'recipeInstructions', - 'keywords', 'name', 'recipeIngredient', 'servings' + 'keywords', 'name', 'recipeIngredient', 'servings', 'description' ]: ld_json.pop(key, None) diff --git a/cookbook/views/api.py b/cookbook/views/api.py index e8088cdd..52e80247 100644 --- a/cookbook/views/api.py +++ b/cookbook/views/api.py @@ -589,9 +589,17 @@ def recipe_from_json(request): mjson = request.POST['json'] md_json = json.loads(mjson) - if ('@type' in md_json - and md_json['@type'] == 'Recipe'): - return JsonResponse(find_recipe_json(md_json, '', request.space)) + for ld_json_item in md_json: + # recipes type might be wrapped in @graph type + if '@graph' in ld_json_item: + for x in md_json['@graph']: + if '@type' in x and x['@type'] == 'Recipe': + md_json = x + + if ('@type' in md_json + and md_json['@type'] == 'Recipe'): + return JsonResponse(find_recipe_json(md_json, '', request.space)) + return JsonResponse( { 'error': True,