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()