mirror of
https://github.com/home-assistant/core.git
synced 2025-07-15 17:27:10 +00:00
parent
a012c61762
commit
60ca8b95a4
@ -288,22 +288,30 @@ class SeventeenTrackData:
|
|||||||
if not self.show_delivered:
|
if not self.show_delivered:
|
||||||
packages = [p for p in packages if p.status != VALUE_DELIVERED]
|
packages = [p for p in packages if p.status != VALUE_DELIVERED]
|
||||||
|
|
||||||
|
packages_map = {p.tracking_number: p for p in packages}
|
||||||
# Add new packages:
|
# Add new packages:
|
||||||
to_add = set(packages) - set(self.packages)
|
|
||||||
|
already_tracked_nbr = [p.tracking_number for p in self.packages]
|
||||||
|
received_tracked_nbr = [p.tracking_number for p in packages]
|
||||||
|
|
||||||
|
to_add = set(received_tracked_nbr) - set(already_tracked_nbr)
|
||||||
|
_LOGGER.debug('Will add new tracking numbers: %s', to_add)
|
||||||
if self.packages and to_add:
|
if self.packages and to_add:
|
||||||
self._async_add_entities([
|
self._async_add_entities([
|
||||||
SeventeenTrackPackageSensor(self, package)
|
SeventeenTrackPackageSensor(self,
|
||||||
for package in to_add
|
packages_map[tracking_number])
|
||||||
|
for tracking_number in to_add
|
||||||
], True)
|
], True)
|
||||||
|
|
||||||
# Remove archived packages from the entity registry:
|
# Remove archived packages from the entity registry:
|
||||||
to_remove = set(self.packages) - set(packages)
|
to_remove = set(received_tracked_nbr) - set(already_tracked_nbr)
|
||||||
|
_LOGGER.debug('Will remove tracking number: %s', to_remove)
|
||||||
reg = await self._hass.helpers.entity_registry.async_get_registry()
|
reg = await self._hass.helpers.entity_registry.async_get_registry()
|
||||||
for package in to_remove:
|
for tracking_number in to_remove:
|
||||||
entity_id = reg.async_get_entity_id(
|
entity_id = reg.async_get_entity_id(
|
||||||
'sensor', 'seventeentrack',
|
'sensor', 'seventeentrack',
|
||||||
ENTITY_ID_TEMPLATE.format(
|
ENTITY_ID_TEMPLATE.format(
|
||||||
self.account_id, package.tracking_number))
|
self.account_id, tracking_number))
|
||||||
if not entity_id:
|
if not entity_id:
|
||||||
continue
|
continue
|
||||||
self._hass.async_create_task(reg.async_remove(entity_id))
|
self._hass.async_create_task(reg.async_remove(entity_id))
|
||||||
|
Loading…
x
Reference in New Issue
Block a user