diff --git a/cookbook/helper/recipe_html_import.py b/cookbook/helper/recipe_html_import.py
index 7bee63cdd..3a57193c1 100644
--- a/cookbook/helper/recipe_html_import.py
+++ b/cookbook/helper/recipe_html_import.py
@@ -84,12 +84,17 @@ def get_recipe_from_source(text, url, space):
for el in soup.find_all('script', type='application/ld+json'):
el = remove_graph(el)
if type(el) == list:
- for l in el:
- parse_list.append(l)
- else:
+ for le in el:
+ parse_list.append(le)
+ elif type(el) == dict:
parse_list.append(el)
for el in soup.find_all(type='application/json'):
- parse_list.append(remove_graph(el))
+ el = remove_graph(el)
+ if type(el) == list:
+ for le in el:
+ parse_list.append(le)
+ elif type(el) == dict:
+ parse_list.append(el)
# if a url was not provided, try to find one in the first document
if not url and len(parse_list) > 0:
@@ -182,10 +187,10 @@ def remove_graph(el):
if isinstance(el, Tag):
try:
el = json.loads(el.string)
+ if '@graph' in el:
+ for x in el['@graph']:
+ if '@type' in x and x['@type'] == 'Recipe':
+ el = x
except TypeError:
pass
- if '@graph' in el:
- for x in el['@graph']:
- if '@type' in x and x['@type'] == 'Recipe':
- el = x
return el
diff --git a/cookbook/helper/recipe_url_import.py b/cookbook/helper/recipe_url_import.py
index 9c1faf2bd..99d47eb56 100644
--- a/cookbook/helper/recipe_url_import.py
+++ b/cookbook/helper/recipe_url_import.py
@@ -284,7 +284,7 @@ def parse_keywords(keyword_json, space):
for kw in keyword_json:
kw = normalize_string(kw)
if k := Keyword.objects.filter(name=kw, space=space).first():
- if len (k['text']) > 0:
+ if len(k) != 0:
keywords.append({'id': str(k.id), 'text': str(k)})
else:
keywords.append({'id': random.randrange(1111111, 9999999, 1), 'text': kw})