added custom config and started developing roon trigger
This commit is contained in:
@@ -4,16 +4,18 @@ from pathlib import Path
|
||||
from lxml import etree
|
||||
from functools import cached_property, lru_cache
|
||||
from arguments import ArgumentsParser
|
||||
from typing import NamedTuple, Optional
|
||||
|
||||
from typing import NamedTuple, Optional, Any
|
||||
from collections import OrderedDict
|
||||
import xmltodict
|
||||
|
||||
class TriggerTuple(NamedTuple):
|
||||
name: str
|
||||
interval_in_seconds: int
|
||||
governor: str
|
||||
custom_config: OrderedDict[str, Any]
|
||||
|
||||
def __repr__(self):
|
||||
return f"{self.name}, interval: {self.interval_in_seconds}, governor: {self.governor}"
|
||||
def __repr__(self) -> str:
|
||||
return f"{self.name}, interval: {self.interval_in_seconds}, governor: {self.governor}, custom_config: {self.custom_config}"
|
||||
|
||||
|
||||
class Config:
|
||||
@@ -68,10 +70,17 @@ class Config:
|
||||
name = self._get_single_text_value_from_xpath('name', trigger_elem)
|
||||
interval_in_seconds = self._get_single_text_value_from_xpath('intervalInSeconds', trigger_elem)
|
||||
governor = self._get_single_text_value_from_xpath('governor', trigger_elem)
|
||||
try:
|
||||
custom_config_elem = self._get_single_element_by_xpath('customConfig', trigger_elem)
|
||||
custom_config = xmltodict.parse(etree.tostring(custom_config_elem))['customConfig']
|
||||
except AssertionError:
|
||||
self.log.debug("Trigger %s has no custom config", name)
|
||||
custom_config = OrderedDict({})
|
||||
_new_trigger = TriggerTuple(
|
||||
name=name,
|
||||
interval_in_seconds=int(interval_in_seconds),
|
||||
governor=governor
|
||||
governor=governor,
|
||||
custom_config=custom_config
|
||||
)
|
||||
ret_val.append(_new_trigger)
|
||||
self.log.info("Loaded trigger: %s", _new_trigger)
|
||||
|
||||
Reference in New Issue
Block a user