Spaces:
Runtime error
Runtime error
| 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 |