diff --git a/recipe_scrapers/hellofresh.py b/recipe_scrapers/hellofresh.py index 871995213..b45d231b2 100644 --- a/recipe_scrapers/hellofresh.py +++ b/recipe_scrapers/hellofresh.py @@ -17,7 +17,10 @@ def yields(self): return self.schema.yields() def ingredients(self): - return self.schema.ingredients() + if not self._serving_one_on_page(): + return self.schema.ingredients() + else: + return [f"2 * {ingredient}" for ingredient in self.schema.ingredients()] def instructions(self): return self.schema.instructions() @@ -33,3 +36,19 @@ def cuisine(self): def category(self): return self.schema.category() + + def _serving_one_on_page(self): + # ad-hoc solution for https://github.com/hhursev/recipe-scrapers/issues/527 + try: + return ( + self.soup.find("div", {"data-test-id": "serving-amount-container"}) + .find("div", {"class": "fela-_txm046"}) + .select("div[class*=ds]")[0] + .get_text() + == "1" + ) + except (AttributeError, IndexError): + # AttributeError if .find(..) method errored + # IndexError if the .select(..)[0] did not work as expected + # both cases to fall back to default behaviour + return True diff --git a/tests/test_data/hellofresh_adhoc.testhtml b/tests/test_data/hellofresh_adhoc.testhtml new file mode 100644 index 000000000..a2b0df5cc --- /dev/null +++ b/tests/test_data/hellofresh_adhoc.testhtml @@ -0,0 +1,376 @@ + +
+ +La + chakchouka est l'un de nos plats végétariens préférés. Vous avez +énormément de possibilités avec ce plat, par exemple en variant le type +de fromage utilisé. Les œufs sont pleins de bons nutriments, tels que +des vitamines, des minéraux et bien sûr des protéines - un choix +végétarien nutritif.
Produced in a facility that processes eggs, milk, fish, peanuts, sesame, shellfish, soy, tree nuts, and wheat.
1 pièce
Oignon jaune
2 pièce
Gousse d'ail
½ pièce
Piment rouge
1 pièce
Poivron rouge
4 pièce
Tomate allongée
4 pièce
Œuf de poule élevée en plein air
(ContainsŒuf)75 g
Fromage de chèvre frais
(ContainsŒuf, Lait (dont lactose), Moutarde, Gluten/GlutenMay containŒuf, Moutarde, Gluten/Gluten)5 g
Persil plat
(May containCéléri)2 pièce
Demi-baguette
(ContainsCéréales contenant du gluten)½ pièce
Cube de bouillon de légumes
1 cs
Huile d'olive
selon le goût
Poivre et sel
Préchauffez + le four à 210 degrés. Hachez l'oignon et écrasez ou émincez l'ail. +Épépinez le piment rouge et le poivron rouge et coupez-les en lanières. +Coupez les tomates prunes en petits dés et ciselez finement le persil +frisé.
Faites + chauffer l’huile d’olive dans un wok ou une sauteuse avec couvercle et +faites-y revenir l’oignon, l’ail et le piment rouge 2 minutes à feu +moyen-vif. Puis, ajoutez le poivron, la tomate et la moitié du persil.
Ajoutez + ensuite 30 ml d’eau par personne dans le wok ou la sauteuse, puis +émiettez le cube de bouillon par-dessus. Portez à ébullition tout en +remuant, puis laissez mijoter 5 minutes à couvert sur feu moyen-vif. +Salez et poivrez.
Pour + chaque œuf, faites un petit cratère dans le mélange de légumes, puis +cassez-y les œufs. Saupoudrez-les de sel et de poivre. Disposez le +chèvre frais émietté sur l’ensemble, couvrez et laissez les œufs cuire +pendant 10 minutes. Lors des 4 dernières minutes, retirez le couvercle, +augmentez un peu le feu et laissez l’excédent d’eau s’évaporer.
Pendant ce temps, enfournez les demi-baguettes 6 à 8 minutes ou jusqu’à ce qu’elles soient dorées.
Servez le chakchouka dans les assiettes. Garnissez du reste de persil et présentez les demi-baguettes en accompagnement.