Module lib.plugins.ambientsound.config
Function define the configuration of the ambient sound
Expand source code
# Distributed under Pycameresp License
# Copyright (c) 2023 Remi BERTHOLET
""" Function define the configuration of the ambient sound """
# pylint:disable=anomalous-unicode-escape-in-string
import time
import tools.jsonconfig
import tools.strings
import tools.date
class AmbientTimeConfig(tools.jsonconfig.JsonConfig):
""" Ambient time configuration """
def __init__(self):
""" Constructor """
tools.jsonconfig.JsonConfig.__init__(self)
self.start_time = 0
self.end_time = 0
class AmbientSoundConfig(tools.jsonconfig.JsonConfig):
""" Ambient sound configuration """
config = None
last_get_config = 0
def __init__(self):
""" Constructor """
tools.jsonconfig.JsonConfig.__init__(self)
_ = AmbientTimeConfig() # <- This line is REQUIRED for deserialization to work
self.time_slots = []
self.activated = False
def append(self, time_slot):
""" Add new time slot in the list """
found = False
for current in self.time_slots:
if current.start_time == time_slot.start_time and current.end_time == time_slot.end_time:
found = True
break
if found is False:
self.time_slots.append(time_slot)
def get(self, index):
""" Return the time slot at the index """
try:
return self.time_slots[int(index)]
except:
return None
def remove(self, index):
""" Remove the time slot at the index """
try:
del self.time_slots[int(index)]
except:
pass
def is_activated(self):
""" Indicates if the ambient sound must be activated """
result = False
hour,minute,second = tools.date.local_time(time.time())[3:6]
current_time = (hour * 3600) + (minute * 60) + second
for time_slot in self.time_slots:
if current_time >= time_slot.start_time and current_time <= time_slot.end_time:
result = True
break
return result
@staticmethod
def get_config():
""" Return the singleton configuration """
if AmbientSoundConfig.config is None:
AmbientSoundConfig.config = AmbientSoundConfig()
AmbientSoundConfig.config.load()
AmbientSoundConfig.config.refresh()
return AmbientSoundConfig.config
Classes
class AmbientSoundConfig-
Ambient sound configuration
Constructor
Expand source code
class AmbientSoundConfig(tools.jsonconfig.JsonConfig): """ Ambient sound configuration """ config = None last_get_config = 0 def __init__(self): """ Constructor """ tools.jsonconfig.JsonConfig.__init__(self) _ = AmbientTimeConfig() # <- This line is REQUIRED for deserialization to work self.time_slots = [] self.activated = False def append(self, time_slot): """ Add new time slot in the list """ found = False for current in self.time_slots: if current.start_time == time_slot.start_time and current.end_time == time_slot.end_time: found = True break if found is False: self.time_slots.append(time_slot) def get(self, index): """ Return the time slot at the index """ try: return self.time_slots[int(index)] except: return None def remove(self, index): """ Remove the time slot at the index """ try: del self.time_slots[int(index)] except: pass def is_activated(self): """ Indicates if the ambient sound must be activated """ result = False hour,minute,second = tools.date.local_time(time.time())[3:6] current_time = (hour * 3600) + (minute * 60) + second for time_slot in self.time_slots: if current_time >= time_slot.start_time and current_time <= time_slot.end_time: result = True break return result @staticmethod def get_config(): """ Return the singleton configuration """ if AmbientSoundConfig.config is None: AmbientSoundConfig.config = AmbientSoundConfig() AmbientSoundConfig.config.load() AmbientSoundConfig.config.refresh() return AmbientSoundConfig.configAncestors
- tools.jsonconfig.JsonConfig
Class variables
var configvar last_get_config
Static methods
def get_config()-
Return the singleton configuration
Expand source code
@staticmethod def get_config(): """ Return the singleton configuration """ if AmbientSoundConfig.config is None: AmbientSoundConfig.config = AmbientSoundConfig() AmbientSoundConfig.config.load() AmbientSoundConfig.config.refresh() return AmbientSoundConfig.config
Methods
def append(self, time_slot)-
Add new time slot in the list
Expand source code
def append(self, time_slot): """ Add new time slot in the list """ found = False for current in self.time_slots: if current.start_time == time_slot.start_time and current.end_time == time_slot.end_time: found = True break if found is False: self.time_slots.append(time_slot) def get(self, index)-
Return the time slot at the index
Expand source code
def get(self, index): """ Return the time slot at the index """ try: return self.time_slots[int(index)] except: return None def is_activated(self)-
Indicates if the ambient sound must be activated
Expand source code
def is_activated(self): """ Indicates if the ambient sound must be activated """ result = False hour,minute,second = tools.date.local_time(time.time())[3:6] current_time = (hour * 3600) + (minute * 60) + second for time_slot in self.time_slots: if current_time >= time_slot.start_time and current_time <= time_slot.end_time: result = True break return result def remove(self, index)-
Remove the time slot at the index
Expand source code
def remove(self, index): """ Remove the time slot at the index """ try: del self.time_slots[int(index)] except: pass
class AmbientTimeConfig-
Ambient time configuration
Constructor
Expand source code
class AmbientTimeConfig(tools.jsonconfig.JsonConfig): """ Ambient time configuration """ def __init__(self): """ Constructor """ tools.jsonconfig.JsonConfig.__init__(self) self.start_time = 0 self.end_time = 0Ancestors
- tools.jsonconfig.JsonConfig