fix json direct import when wrapped in @graph

This commit is contained in:
smilerz 2021-03-19 13:23:55 -05:00
parent 58fc26904b
commit 45dba6fad2
2 changed files with 12 additions and 4 deletions

View File

@ -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)

View File

@ -589,9 +589,17 @@ def recipe_from_json(request):
mjson = request.POST['json']
md_json = json.loads(mjson)
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,