From 1777102b60a9dd8a9258229a5d85157f23454c3e Mon Sep 17 00:00:00 2001 From: Leonardo Merza Date: Tue, 31 Jan 2023 15:50:24 -0500 Subject: [PATCH] add guitar center --- .../email/parsers/guitar_center.py | 27 +++++++++++++++++++ custom_components/email/parsers/pledgebox.py | 1 - custom_components/email/sensor.py | 2 ++ 3 files changed, 29 insertions(+), 1 deletion(-) create mode 100644 custom_components/email/parsers/guitar_center.py diff --git a/custom_components/email/parsers/guitar_center.py b/custom_components/email/parsers/guitar_center.py new file mode 100644 index 0000000..61f7f59 --- /dev/null +++ b/custom_components/email/parsers/guitar_center.py @@ -0,0 +1,27 @@ +import logging + +from bs4 import BeautifulSoup +from ..const import EMAIL_ATTR_BODY + + +_LOGGER = logging.getLogger(__name__) +ATTR_GUITAR_CENTER = 'guitar_center' +EMAIL_DOMAIN_GUITAR_CENTER = 'guitarcenter.com' + + +def parse_guitar_center(email): + """Parse Guitar Center tracking numbers.""" + tracking_numbers = [] + + soup = BeautifulSoup(email[EMAIL_ATTR_BODY], 'html.parser') + elements = [element for element in soup.find_all('td')] + for element in elements: + _LOGGER.error(element.text) + if 'Tracking:' in element.text: + tracking_link = element.find("a", recursive=False) + tracking_number = tracking_link.text + _LOGGER.error(tracking_number) + if tracking_number not in tracking_numbers: + tracking_numbers.append(tracking_number) + + return tracking_numbers diff --git a/custom_components/email/parsers/pledgebox.py b/custom_components/email/parsers/pledgebox.py index a755787..f7a0da2 100644 --- a/custom_components/email/parsers/pledgebox.py +++ b/custom_components/email/parsers/pledgebox.py @@ -20,7 +20,6 @@ def parse_pledgebox(email): if not line: continue match = re.search('^(\d{12})$', line) - _LOGGER.error(match) if match and match.group(1) not in tracking_numbers: tracking_numbers.append(match.group(1)) diff --git a/custom_components/email/sensor.py b/custom_components/email/sensor.py index d2f6b2d..5aefcc9 100644 --- a/custom_components/email/sensor.py +++ b/custom_components/email/sensor.py @@ -56,6 +56,7 @@ from .parsers.ubiquiti import ATTR_UBIQUITI, EMAIL_DOMAIN_UBIQUITI, parse_ubiquiti from .parsers.nintendo import ATTR_NINTENDO, EMAIL_DOMAIN_NINTENDO, parse_nintendo from .parsers.pledgebox import ATTR_PLEDGEBOX, EMAIL_DOMAIN_PLEDGEBOX, parse_pledgebox +from .parsers.guitar_center import ATTR_GUITAR_CENTER, EMAIL_DOMAIN_GUITAR_CENTER, parse_guitar_center parsers = [ @@ -98,6 +99,7 @@ (ATTR_UBIQUITI, EMAIL_DOMAIN_UBIQUITI, parse_ubiquiti), (ATTR_NINTENDO, EMAIL_DOMAIN_NINTENDO, parse_nintendo), (ATTR_PLEDGEBOX, EMAIL_DOMAIN_PLEDGEBOX, parse_pledgebox), + (ATTR_GUITAR_CENTER, EMAIL_DOMAIN_GUITAR_CENTER, parse_guitar_center), ] _LOGGER = logging.getLogger(__name__)