From 7365c2e3ee63276ecf2c91b7fa18ff6026b115d5 Mon Sep 17 00:00:00 2001 From: Alex Orid Date: Wed, 5 May 2021 14:06:52 -0400 Subject: [PATCH] progress --- timers_module.py | 90 +++++++++++++++++++++++++++++++++--------------- 1 file changed, 63 insertions(+), 27 deletions(-) diff --git a/timers_module.py b/timers_module.py index b2dc872..7865f2f 100644 --- a/timers_module.py +++ b/timers_module.py @@ -5,7 +5,13 @@ import datetime import utilities_script as utility class timer(): - def __init__(self, name, startTime, endTime, trigger, trigger_exec, tempTimer = True): + def __init__(self, + name, + startTime = datetime.datetime.now, + endTime = datetime.datetime.now, + trigger = "", + trigger_exec = "", + tempTimer = True): self.name = name self.startTime = startTime self.endTime = endTime @@ -19,23 +25,53 @@ class Timers_Module(): self.timersList = [] def main(self): - self.createTimer() + self.createTimer("test_timer", seconds=30) + #self.updateTimersList() def updateTimersList(self): - pass + self.compile_and_load() - 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) + def compile_and_load(self): + dic = {} + implementations = self.get_implementations_dir() + for dirName, subdirList, fileList in os.walk(implementations): + for file in fileList: + name, startTime, endTime, trigger, trigger_exec, tempTimer = self.readFile(file) + newTimer = timer(name, startTime, endTime, trigger, trigger_exec, tempTimer) - newTimer= timer() - newTimer.startTime = temp - newTimer.endTime = targetTime - newTimer.trigger = trigger - newTimer.trigger_exec = trigger_exec - newTimer.tempTimer = tempTimer + dic[newTimer.name] = newTimer + self.timersList.append(self.timersList) + break + return dic + + def get_base_dir(self) -> str: + cwd = os.getcwd() + split = os.path.split(cwd) + current = split[len(split) - 1] + if current == 'timers': + return self.check_dir(cwd) + elif current == 'Praxis_Bot' or current == 'Praxis': + return self.check_dir(os.path.join(cwd, "timers")) + else: + print("could not find working directory for Praxis_Bot/timers") + raise Exception + + def get_implementations_dir(self) -> str: + return self.check_dir(os.path.join(self.get_base_dir())) + + def check_dir(self, path: str) -> str: + if not os.path.exists(path): + os.mkdir(path, 0x777) + return path + + def createTimer(self, name, days=0, hours=0, minutes=0, seconds=0, microseconds=0, trigger="", trigger_exec="", tempTimer=True): + startTime = datetime.datetime.now() + targetTime = startTime + datetime.timedelta(days=days, hours=hours, minutes=minutes, seconds=seconds, microseconds=microseconds) + + newTimer= timer(name, startTime, targetTime, trigger, trigger_exec, tempTimer) self.timersList.append(newTimer) + self.makeFile(newTimer) def checkTimer(self, name): @@ -57,27 +93,27 @@ class Timers_Module(): self.deleteTimer(name) - def makeFile(self, name, startTime, endTime, trigger, trigger_exec, tempTimer = True): - dir = utility.get_dir("stream_sources/timers") + def makeFile(self, timer_obj:timer): + dir = utility.get_dir("timers") script_dir = os.path.dirname(__file__) #<-- absolute dir the script is in - relative_path = name + ".json" + relative_path = timer_obj.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, 'r+') as cred_r: + data = json.load(timer_obj) + data['name'] = timer_obj.name + data['startTime'] = timer_obj.startTime + data['endTime'] = timer_obj.endTime + data['trigger'] = timer_obj.trigger + data['trigger_exec'] = timer_obj.trigger_exec + data['tempTimer'] = timer_obj.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") + dir = utility.get_dir("timers") script_dir = os.path.dirname(__file__) #<-- absolute dir the script is in - relative_path = name + ".json" + relative_path = name #+ ".json" real_file_path = os.path.join(script_dir, relative_path) startTime, endTime, trigger, tempTimer = None @@ -92,9 +128,9 @@ class Timers_Module(): return name, startTime, endTime, trigger, trigger_exec, tempTimer def deleteFile(self, name): - dir = utility.get_dir("stream_sources/timers") + dir = utility.get_dir("timers") script_dir = os.path.dirname(__file__) #<-- absolute dir the script is in - relative_path = name + ".json" + relative_path = name #+ ".json" real_file_path = os.path.join(script_dir, relative_path) os.remove(real_file_path)