diff --git a/timers_module.py b/timers_module.py new file mode 100644 index 0000000..b2dc872 --- /dev/null +++ b/timers_module.py @@ -0,0 +1,104 @@ +import os +import json +import time +import datetime +import utilities_script as utility + +class timer(): + def __init__(self, name, startTime, endTime, trigger, trigger_exec, tempTimer = True): + self.name = name + self.startTime = startTime + self.endTime = endTime + self.trigger = trigger + self.trigger_exec = trigger_exec + self.tempTimer = tempTimer # If enabled this will cause the Timer to be deleted upon shutdown or startup + +class Timers_Module(): + def __init__(self): + super().__init__() + self.timersList = [] + + def main(self): + self.createTimer() + + def updateTimersList(self): + pass + + def createTimer(self, days=0, hours=0, minutes=0, seconds=0, microseconds=0, trigger="", trigger_exec="", tempTimer=True): + temp = datetime.datetime.now() + targetTime = temp + datetime.timedelta(days=days, hours=hours, minutes=minutes, seconds=seconds, microseconds=microseconds) + + newTimer= timer() + newTimer.startTime = temp + newTimer.endTime = targetTime + newTimer.trigger = trigger + newTimer.trigger_exec = trigger_exec + newTimer.tempTimer = tempTimer + + self.timersList.append(newTimer) + + def checkTimer(self, name): + + name, startTime, endTime, trigger, trigger_exec, tempTimer = self.readFile(name) + if endTime < datetime.datetime.now(): + print("do timer thing") + self.TIMER_EXEC(name, startTime, endTime, trigger, trigger_exec, tempTimer) + + + def deleteTimer(self, name): + self.deleteFile(name) + + + def TIMER_EXEC(self, name, startTime, endTime, trigger, trigger_exec, tempTimer): + print(trigger, trigger_exec, "at", endTime) + + if tempTimer == True: + print("deleting " + name) + self.deleteTimer(name) + + + def makeFile(self, name, startTime, endTime, trigger, trigger_exec, tempTimer = True): + dir = utility.get_dir("stream_sources/timers") + script_dir = os.path.dirname(__file__) #<-- absolute dir the script is in + relative_path = name + ".json" + real_file_path = os.path.join(script_dir, relative_path) + with open(real_file_path, 'rw') as cred_r: + data = json.load(cred_r) + data['name'] = name + data['startTime'] = startTime + data['endTime'] = endTime + data['trigger'] = trigger + data['trigger_exec'] = trigger_exec + data['tempTimer'] = tempTimer + + with open(real_file_path, 'w') as cred_w: + json.dump(data, cred_w, indent=2) + + def readFile(self, name): + dir = utility.get_dir("stream_sources/timers") + script_dir = os.path.dirname(__file__) #<-- absolute dir the script is in + relative_path = name + ".json" + real_file_path = os.path.join(script_dir, relative_path) + + startTime, endTime, trigger, tempTimer = None + with open(real_file_path, 'r') as cred_r: + data = json.load(cred_r) + name = data['name'] + startTime = data['startTime'] + endTime = data['endTime'] + trigger = data['trigger'] + trigger_exec = data['trigger_exec'] + tempTimer = data['tempTimer'] + return name, startTime, endTime, trigger, trigger_exec, tempTimer + + def deleteFile(self, name): + dir = utility.get_dir("stream_sources/timers") + script_dir = os.path.dirname(__file__) #<-- absolute dir the script is in + relative_path = name + ".json" + real_file_path = os.path.join(script_dir, relative_path) + os.remove(real_file_path) + + +if __name__ == "__main__": + testModule = Timers_Module() + testModule.main()