123 lines
4.1 KiB
Python
123 lines
4.1 KiB
Python
from ..common.waste_data_transformer import WasteDataTransformer
|
|
from ..const.const import (
|
|
_LOGGER,
|
|
SENSOR_COLLECTORS_AFVALWIJZER,
|
|
SENSOR_COLLECTORS_DEAFVALAPP,
|
|
SENSOR_COLLECTORS_ICALENDAR,
|
|
SENSOR_COLLECTORS_OPZET,
|
|
SENSOR_COLLECTORS_RD4,
|
|
SENSOR_COLLECTORS_XIMMIO,
|
|
)
|
|
|
|
try:
|
|
from . import deafvalapp, icalendar, mijnafvalwijzer, opzet, rd4, ximmio
|
|
except ImportError as err:
|
|
_LOGGER.error(f"Import error {err.args}")
|
|
|
|
|
|
class MainCollector(object):
|
|
def __init__(
|
|
self,
|
|
provider,
|
|
postal_code,
|
|
street_number,
|
|
suffix,
|
|
exclude_pickup_today,
|
|
exclude_list,
|
|
default_label,
|
|
):
|
|
self.provider = provider.strip().lower()
|
|
self.postal_code = postal_code.strip().upper()
|
|
self.street_number = street_number.strip()
|
|
self.suffix = suffix.strip().lower()
|
|
self.exclude_pickup_today = exclude_pickup_today.strip()
|
|
self.exclude_list = exclude_list.strip().lower()
|
|
self.default_label = default_label.strip()
|
|
|
|
try:
|
|
if provider in SENSOR_COLLECTORS_AFVALWIJZER:
|
|
waste_data_raw = mijnafvalwijzer.get_waste_data_raw(
|
|
self.provider,
|
|
self.postal_code,
|
|
self.street_number,
|
|
self.suffix,
|
|
)
|
|
elif provider in SENSOR_COLLECTORS_DEAFVALAPP.keys():
|
|
waste_data_raw = deafvalapp.get_waste_data_raw(
|
|
self.provider,
|
|
self.postal_code,
|
|
self.street_number,
|
|
self.suffix,
|
|
)
|
|
elif provider in SENSOR_COLLECTORS_ICALENDAR.keys():
|
|
waste_data_raw = icalendar.get_waste_data_raw(
|
|
self.provider,
|
|
self.postal_code,
|
|
self.street_number,
|
|
self.suffix,
|
|
)
|
|
elif provider in SENSOR_COLLECTORS_OPZET.keys():
|
|
waste_data_raw = opzet.get_waste_data_raw(
|
|
self.provider,
|
|
self.postal_code,
|
|
self.street_number,
|
|
self.suffix,
|
|
)
|
|
elif provider in SENSOR_COLLECTORS_RD4.keys():
|
|
waste_data_raw = rd4.get_waste_data_raw(
|
|
self.provider,
|
|
self.postal_code,
|
|
self.street_number,
|
|
self.suffix,
|
|
)
|
|
elif provider in SENSOR_COLLECTORS_XIMMIO.keys():
|
|
waste_data_raw = ximmio.get_waste_data_raw(
|
|
self.provider,
|
|
self.postal_code,
|
|
self.street_number,
|
|
self.suffix,
|
|
)
|
|
else:
|
|
_LOGGER.error(f"Unknown provider: {provider}")
|
|
return False
|
|
|
|
except ValueError as err:
|
|
_LOGGER.error(f"Check afvalwijzer platform settings {err.args}")
|
|
|
|
##########################################################################
|
|
# COMMON CODE
|
|
##########################################################################
|
|
self._waste_data = WasteDataTransformer(
|
|
waste_data_raw,
|
|
self.exclude_pickup_today,
|
|
self.exclude_list,
|
|
self.default_label,
|
|
)
|
|
|
|
##########################################################################
|
|
# PROPERTIES FOR EXECUTION
|
|
##########################################################################
|
|
@property
|
|
def waste_data_with_today(self):
|
|
return self._waste_data.waste_data_with_today
|
|
|
|
@property
|
|
def waste_data_without_today(self):
|
|
return self._waste_data.waste_data_without_today
|
|
|
|
@property
|
|
def waste_data_provider(self):
|
|
return self._waste_data.waste_data_provider
|
|
|
|
@property
|
|
def waste_types_provider(self):
|
|
return self._waste_data.waste_types_provider
|
|
|
|
@property
|
|
def waste_data_custom(self):
|
|
return self._waste_data.waste_data_custom
|
|
|
|
@property
|
|
def waste_types_custom(self):
|
|
return self._waste_data.waste_types_custom
|