Spaces:
Runtime error
Runtime error
File size: 2,355 Bytes
e74edb5 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 |
import requests
import json
import random
API_KEY = '1f9b61c859214d3ab6a00a6d82ec5a85'
def fetchRecipeData(foodName, apiKey = API_KEY):
recipe = {}
# Fetching recipe Details from food name
url = f"https://api.spoonacular.com/recipes/search?query={foodName}&apiKey={apiKey}"
response = requests.get(url)
json_data = response.json()
# saving responce code
response_status_code = response.status_code
# selecting random recipe from fetched recipes
recipe_list = json_data['results']
foodRecipe = random.choice(recipe_list)
recipe_ID = foodRecipe['id']
# getting recipe details from api using recipe id
url = f"https://api.spoonacular.com/recipes/{recipe_ID}/information?apiKey={apiKey}&includeNutrition=true"
recipe_response = requests.get(url)
all_recipe_json_data = recipe_response.json()
# recipe instructions
recipe_instructions = preprocessing_instructions(all_recipe_json_data['instructions'])
# recipe summary
recipe_summary = all_recipe_json_data['summary']
# recipe ingredients
recipe_Ingredients = all_recipe_json_data['extendedIngredients']
for i, dict in enumerate(recipe_Ingredients):
recipe_Ingredients[i] = dict['originalName']
Ingredients = ', '.join(recipe_Ingredients)
# caloric Breakdow of recipe
recipe_caloric_breakdown = all_recipe_json_data['nutrition']['caloricBreakdown']
# storing all values in recipe dict
recipe['id'] = recipe_ID
recipe['title'] = foodRecipe['title']
recipe['readyTime'] = foodRecipe['readyInMinutes']
recipe['soureUrl'] = foodRecipe['sourceUrl']
recipe['instructions'] = recipe_instructions
recipe['ingridents'] = recipe_Ingredients
recipe_summary = recipe_summary.replace('<b>', '')
recipe_summary = recipe_summary.replace('</b>', '')
recipe['summary'] = recipe_summary
recipe['percentProtein'] = recipe_caloric_breakdown['percentProtein']
recipe['percentFat'] = recipe_caloric_breakdown['percentFat']
recipe['percentCarbs'] = recipe_caloric_breakdown['percentCarbs']
return response_status_code, recipe
def preprocessing_instructions(text):
word_to_remove = ['<ol>', '</ol>', '<li>', '</li>']
for word in word_to_remove:
text = text.replace(word, '')
return text |