Example #1
0
 def update(self, **kwargs):
     """Fetch the latest info from USPS."""
     import myusps
     self.packages = myusps.get_packages(self.session)
     self.mail = myusps.get_mail(self.session, now().date())
     self.attribution = myusps.ATTRIBUTION
     _LOGGER.debug("Mail, request date: %s, list: %s",
                   now().date(), self.mail)
     _LOGGER.debug("Package list: %s", self.packages)
Example #2
0
 def update(self, **kwargs):
     """Fetch the latest info from USPS."""
     import myusps
     self.packages = myusps.get_packages(self.session)
     self.mail = myusps.get_mail(self.session, now().date())
     self.attribution = myusps.ATTRIBUTION
     _LOGGER.debug("Mail, request date: %s, list: %s",
                   now().date(), self.mail)
     _LOGGER.debug("Package list: %s", self.packages)
Example #3
0
 def _update(self):
     """Update device state."""
     import myusps
     status_counts = defaultdict(int)
     for package in myusps.get_packages(self._session):
         status = slugify(package['primary_status'])
         if status == STATUS_DELIVERED and \
                 parse_datetime(package['date']).date() < now().date():
             continue
         status_counts[status] += 1
     self._attributes = {ATTR_ATTRIBUTION: myusps.ATTRIBUTION}
     self._attributes.update(status_counts)
     self._state = sum(status_counts.values())
Example #4
0
    def _update(self):
        """Update device state."""
        import myusps

        status_counts = defaultdict(int)
        for package in myusps.get_packages(self._session):
            status = slugify(package["primary_status"])
            if status == STATUS_DELIVERED and parse_datetime(package["date"]).date() < now().date():
                continue
            status_counts[status] += 1
        self._attributes = {ATTR_ATTRIBUTION: myusps.ATTRIBUTION}
        self._attributes.update(status_counts)
        self._state = sum(status_counts.values())
Example #5
0
    client = ImgurClient(imgur_client_id, imgur_client_secret)
except:
    print("Imgur is down, mail images will not show up")
    pass

# Establish a session.
username = os.environ.get('usps_username')
password = os.environ.get('usps_password')

# Use the login credentials you use to login to My USPS via the web.
# A login failure raises a `USPSError`.
# Using the Firefox driver here for selenium as it appears to be the most stable one at the moment.
session = myusps.get_session(username, password, driver='firefox')

# Get all packages that My UPS knows about.
packages = myusps.get_packages(session)

#Check for packages that haven't been delivered yet
upcoming_packages = 0
for p in packages:
    tracking_number = p['tracking_number']
    delivery_date = p['delivery_date']
    primary_status = p['primary_status']
    #Skip delivered package
    if primary_status == "Delivered":
        continue
    upcoming_packages += 1

#Handle any packages in the queue
if upcoming_packages > 0:
    slack_text = (
Example #6
0
 def _update(self):
     """Update device state."""
     import myusps
     self._packages = myusps.get_packages(self._session)