Skip to content

Commit

Permalink
Add support for arla.se (#585)
Browse files Browse the repository at this point in the history
  • Loading branch information
kjellkod12 committed Aug 10, 2022
1 parent bc88749 commit 45ebadc
Show file tree
Hide file tree
Showing 6 changed files with 1,477 additions and 1 deletion.
1 change: 1 addition & 0 deletions README.rst
Expand Up @@ -92,6 +92,7 @@ Scrapers available for:
- `https://amazingribs.com/ <https://amazingribs.com/>`_
- `https://ambitiouskitchen.com/ <https://ambitiouskitchen.com>`_
- `https://archanaskitchen.com/ <https://archanaskitchen.com/>`_
- `https://www.arla.se/ <https://www.arla.se/>`_
- `https://www.atelierdeschefs.fr/ <https://www.atelierdeschefs.fr/>`_
- `https://averiecooks.com/ <https://www.averiecooks.com/>`_
- `https://baking-sense.com/ <https://baking-sense.com/>`_
Expand Down
2 changes: 2 additions & 0 deletions recipe_scrapers/__init__.py
Expand Up @@ -16,6 +16,7 @@
from .amazingribs import AmazingRibs
from .ambitiouskitchen import AmbitiousKitchen
from .archanaskitchen import ArchanasKitchen
from .arla import Arla
from .atelierdeschefs import AtelierDesChefs
from .averiecooks import AverieCooks
from .bakingmischeif import BakingMischeif
Expand Down Expand Up @@ -220,6 +221,7 @@
AmazingRibs.host(): AmazingRibs,
AmbitiousKitchen.host(): AmbitiousKitchen,
ArchanasKitchen.host(): ArchanasKitchen,
Arla.host(): Arla,
AtelierDesChefs.host(): AtelierDesChefs,
AverieCooks.host(): AverieCooks,
BBCFood.host(): BBCFood,
Expand Down
4 changes: 3 additions & 1 deletion recipe_scrapers/_schemaorg.py
Expand Up @@ -191,7 +191,9 @@ def _extract_howto_instructions_text(self, schema_item):
instructions_gist.append(schema_item.get("name"))
instructions_gist.append(schema_item.get("text"))
elif schema_item.get("@type") == "HowToSection":
instructions_gist.append(schema_item.get("name") or schema_item.get("Name"))
name = schema_item.get("name") or schema_item.get("Name")
if name is not None:
instructions_gist.append(name)
for item in schema_item.get("itemListElement"):
instructions_gist += self._extract_howto_instructions_text(item)
return instructions_gist
Expand Down
43 changes: 43 additions & 0 deletions recipe_scrapers/arla.py
@@ -0,0 +1,43 @@
from ._abstract import AbstractScraper


class Arla(AbstractScraper):
@classmethod
def host(cls):
return "arla.se"

def author(self):
return self.schema.author()

def title(self):
return self.schema.title()

def category(self):
return self.schema.category()

def total_time(self):
return self.schema.total_time()

def yields(self):
return self.schema.yields()

def image(self):
return self.schema.image()

def ingredients(self):
return self.schema.ingredients()

def instructions(self):
return self.schema.instructions()

def ratings(self):
return self.schema.ratings()

def cuisine(self):
return self.schema.cuisine()

def description(self):
return self.schema.description()

def nutrients(self):
return self.schema.nutrients()
74 changes: 74 additions & 0 deletions tests/test_arla.py
@@ -0,0 +1,74 @@
from recipe_scrapers.arla import Arla
from tests import ScraperTest


class TestArlaScraper(ScraperTest):

scraper_class = Arla

def test_host(self):
self.assertEqual("arla.se", self.harvester_class.host())

def test_author(self):
self.assertEqual("Arla Mat", self.harvester_class.author())

def test_title(self):
self.assertEqual("Reuben sandwich", self.harvester_class.title())

def test_category(self):
self.assertEqual("Brunch, Förrätt, Huvudrätt, Mellanmål", self.harvester_class.category())

def test_total_time(self):
self.assertEqual(40, self.harvester_class.total_time())

def test_yields(self):
self.assertEqual("4 servings", self.harvester_class.yields())

def test_image(self):
self.assertEqual(
"https://cdn-rdb.arla.com/Files/arla-se/235235459/f96b874a-5b9c-4936-b3e2-5071e76136c0.jpg?mode=crop&w=1200&h=630&scale=both&format=jpg&quality=80&ak=f525e733&hm=35af1404",
self.harvester_class.image()
)

def test_ingredients(self):
self.assertEqual(
['200 g kokt rimmad oxbringa, eller corned beef',
'1 dl surkål', '1 dl riven Arla Präst® ost',
'8 skivor surdegsbröd',
'50 g Arla® Svenskt Smör, smält',
'2 saltgurkor',
'½ gul paprika',
'1 schalottenlök',
'1 dl majonnäs',
'1 msk chilisås',
'1 tsk paprikapulver',
'1 tsk dijonsenap',
'½ krm tabasco'],
self.harvester_class.ingredients()
)

def test_instructions(self):
self.assertEqual(
"Dressing:\nBörja med dressingen. Finhacka paprika och lök. Blanda med övr"
"iga ingredienser och ställ åt sidan.\nSkär köttet i tunna skivor. Låt sur"
"kålen rinna av ordentligt och blanda med osten.\nPensla bröden med smör p"
"å båda sidor. Lägg surkål och ost på hälften av bröden. Lägg på köttet. K"
"licka dressingen över köttet och lägg på resterande bröd.\nGrilla på båda"
" sidor i en het grillpanna eller smörgåsgrill.\nDela grillspett på mitten"
" och trä genom mackorna. Skär saltgurkorna på längden och fäst på grillsp"
"etten.",
self.harvester_class.instructions()
)

def test_ratings(self):
self.assertEqual(4.5, self.harvester_class.ratings())

def test_cuisine(self):
self.assertEqual("Amerikansk", self.harvester_class.cuisine())

def test_description(self):
self.assertEqual(
"En reuben sandwich är en amerikansk macka, vanligtvis med pastrami - men "
"vi använder svensk oxbringa, saltgurka och så kallad rysk dressing.",
self.harvester_class.description()
)

0 comments on commit 45ebadc

Please sign in to comment.