Skip to content

Commit

Permalink
add lowes; remove loger
Browse files Browse the repository at this point in the history
  • Loading branch information
ljmerza committed Jul 14, 2023
1 parent cda3bd7 commit 17ae916
Show file tree
Hide file tree
Showing 4 changed files with 35 additions and 1 deletion.
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ Supported Emails
- Groupon
- Guitar Center
- Litter Robot
- Lowes
- Manta Sleep
- Monoprice
- NewEgg
Expand Down
1 change: 0 additions & 1 deletion custom_components/email/parsers/home_depot.py
Original file line number Diff line number Diff line change
Expand Up @@ -39,5 +39,4 @@ def parse_home_depot(email):
})


_LOGGER.error({ "tracking_numbers" : tracking_numbers})
return tracking_numbers
31 changes: 31 additions & 0 deletions custom_components/email/parsers/lowes.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
import logging
import re

from bs4 import BeautifulSoup
from ..const import EMAIL_ATTR_BODY, EMAIL_ATTR_SUBJECT


_LOGGER = logging.getLogger(__name__)
ATTR_LOWES = 'lowes'
EMAIL_DOMAIN_LOWES = 'lowes.com'

def parse_lowes(email):
"""Parse Lowes tracking numbers."""
tracking_numbers = []

soup = BeautifulSoup(email[EMAIL_ATTR_BODY], 'html.parser')
elements = soup.find_all('span')

for element in elements:
if 'Tracking #' in element.text:
anchor = element.findChild("a" , recursive=False)
link = anchor.get('href')

order_number = re.search(r'#(\d+)', email[EMAIL_ATTR_SUBJECT])
if order_number:
tracking_numbers.append({
'link': link,
'tracking_number': order_number.group(1)
})

return tracking_numbers
3 changes: 3 additions & 0 deletions custom_components/email/sensor.py
Original file line number Diff line number Diff line change
Expand Up @@ -62,6 +62,7 @@
from .parsers.sylvane import ATTR_SYLVANE, EMAIL_DOMAIN_SYLVANE, parse_sylvane
from .parsers.adafruit import ATTR_ADAFRUIT, EMAIL_DOMAIN_ADAFRUIT, parse_adafruit
from .parsers.thriftbooks import ATTR_THRIFT_BOOKS, EMAIL_DOMAIN_THRIFT_BOOKS, parse_thrift_books
from .parsers.lowes import ATTR_LOWES, EMAIL_DOMAIN_LOWES, parse_lowes

from .parsers.generic import ATTR_GENERIC, EMAIL_DOMAIN_GENERIC, parse_generic

Expand Down Expand Up @@ -112,6 +113,8 @@
(ATTR_SYLVANE, EMAIL_DOMAIN_SYLVANE, parse_sylvane),
(ATTR_ADAFRUIT, EMAIL_DOMAIN_ADAFRUIT, parse_adafruit),
(ATTR_THRIFT_BOOKS, EMAIL_DOMAIN_THRIFT_BOOKS, parse_thrift_books),
(ATTR_LOWES, EMAIL_DOMAIN_LOWES, parse_lowes),

(ATTR_GENERIC, EMAIL_DOMAIN_GENERIC, parse_generic),
]

Expand Down

0 comments on commit 17ae916

Please sign in to comment.