Skip to content

Commit

Permalink
Fix and refactor ignored ingredient parsing
Browse files Browse the repository at this point in the history
  • Loading branch information
felixschndr committed Jan 26, 2025
1 parent 4845fb9 commit 2fe6ea8
Show file tree
Hide file tree
Showing 2 changed files with 14 additions and 14 deletions.
12 changes: 6 additions & 6 deletions source/ingredient.py
Original file line number Diff line number Diff line change
Expand Up @@ -24,12 +24,16 @@ def _get_specification(raw_data: dict) -> str:
@staticmethod
def _get_quantity(raw_data: dict) -> str:
quantity_raw = raw_data["quantity"]
if quantity_raw is None:
return ""
quantity = int(quantity_raw) if quantity_raw.is_integer() else quantity_raw
return str(quantity)

@staticmethod
def _get_unit(raw_data: dict) -> str:
unit_raw = raw_data["unit"]
if unit_raw is None:
return ""
quantity_is_not_one = raw_data["quantity"] != 1
if quantity_is_not_one:
if unit_raw["plural_name"]:
Expand All @@ -52,12 +56,8 @@ def _get_note(raw_data: dict) -> str:
return f" ({raw_data['note']})"

@staticmethod
def is_ignored(raw_data: dict, ignored_ingredients: list[Ingredient]) -> bool:
return raw_data["food"]["name"] in Ingredient.to_string_list(ignored_ingredients)

@staticmethod
def to_string_list(ingredients: list[Ingredient]) -> list[str]:
return [ingredient.name for ingredient in ingredients]
def is_ignored(name_of_ingredient: str, ignored_ingredients: list[Ingredient]) -> bool:
return name_of_ingredient.lower() in [ingredient.name for ingredient in ignored_ingredients]

def to_dict(self) -> dict:
return {"itemId": self.name, "spec": self.specification, "uuid": str(uuid.uuid4())}
16 changes: 8 additions & 8 deletions source/main.py
Original file line number Diff line number Diff line change
Expand Up @@ -32,10 +32,13 @@ def webhook_handler() -> str:
ingredients_to_add = []
ingredients_raw_data = data["content"]["recipe_ingredient"]
for ingredient_raw_data in ingredients_raw_data:
if Ingredient.is_ignored(ingredient_raw_data, ignored_ingredients):
logger.log.debug(f"Ignoring ingredient {ingredient_raw_data}")
name_of_ingredient = ingredient_raw_data["food"]["name"]
if Ingredient.is_ignored(name_of_ingredient, ignored_ingredients):
logger.log.debug(f"Ignoring ingredient {name_of_ingredient}")
continue

try:
logger.log.debug(f"Parsing ingredient {ingredient_raw_data}")
ingredients_to_add.append(Ingredient.from_raw_data(ingredient_raw_data))
except ValueError:
logger.log.warning(exc_info=True)
Expand Down Expand Up @@ -63,12 +66,9 @@ def parse_ignored_ingredients() -> list[Ingredient]:
)
return []

ignored_ingredients = [
Ingredient(name) for name in ignored_ingredients_input.lower().replace(", ", ",").split(",")
]
logger.log.info(f"Ignoring ingredients {Ingredient.to_string_list(ignored_ingredients)}")

return ignored_ingredients
ignored_ingredients_raw = ignored_ingredients_input.replace(", ", ",").split(",")
logger.log.info(f"Ignoring ingredients {ignored_ingredients_raw}")
return [Ingredient(name.lower()) for name in ignored_ingredients_raw]


if __name__ == "__main__":
Expand Down

0 comments on commit 2fe6ea8

Please sign in to comment.