This commit is contained in:
Alex Orid 2021-05-05 14:06:52 -04:00
parent fae2cacb73
commit 7365c2e3ee

View File

@ -5,7 +5,13 @@ import datetime
import utilities_script as utility import utilities_script as utility
class timer(): 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.name = name
self.startTime = startTime self.startTime = startTime
self.endTime = endTime self.endTime = endTime
@ -19,23 +25,53 @@ class Timers_Module():
self.timersList = [] self.timersList = []
def main(self): def main(self):
self.createTimer() self.createTimer("test_timer", seconds=30)
#self.updateTimersList()
def updateTimersList(self): 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): def compile_and_load(self):
temp = datetime.datetime.now() dic = {}
targetTime = temp + datetime.timedelta(days=days, hours=hours, minutes=minutes, seconds=seconds, microseconds=microseconds) 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() dic[newTimer.name] = newTimer
newTimer.startTime = temp self.timersList.append(self.timersList)
newTimer.endTime = targetTime break
newTimer.trigger = trigger return dic
newTimer.trigger_exec = trigger_exec
newTimer.tempTimer = tempTimer 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.timersList.append(newTimer)
self.makeFile(newTimer)
def checkTimer(self, name): def checkTimer(self, name):
@ -57,27 +93,27 @@ class Timers_Module():
self.deleteTimer(name) self.deleteTimer(name)
def makeFile(self, name, startTime, endTime, trigger, trigger_exec, tempTimer = True): def makeFile(self, timer_obj:timer):
dir = utility.get_dir("stream_sources/timers") dir = utility.get_dir("timers")
script_dir = os.path.dirname(__file__) #<-- absolute dir the script is in 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) real_file_path = os.path.join(script_dir, relative_path)
with open(real_file_path, 'rw') as cred_r: with open(real_file_path, 'r+') as cred_r:
data = json.load(cred_r) data = json.load(timer_obj)
data['name'] = name data['name'] = timer_obj.name
data['startTime'] = startTime data['startTime'] = timer_obj.startTime
data['endTime'] = endTime data['endTime'] = timer_obj.endTime
data['trigger'] = trigger data['trigger'] = timer_obj.trigger
data['trigger_exec'] = trigger_exec data['trigger_exec'] = timer_obj.trigger_exec
data['tempTimer'] = tempTimer data['tempTimer'] = timer_obj.tempTimer
with open(real_file_path, 'w') as cred_w: with open(real_file_path, 'w') as cred_w:
json.dump(data, cred_w, indent=2) json.dump(data, cred_w, indent=2)
def readFile(self, name): 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 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) real_file_path = os.path.join(script_dir, relative_path)
startTime, endTime, trigger, tempTimer = None startTime, endTime, trigger, tempTimer = None
@ -92,9 +128,9 @@ class Timers_Module():
return name, startTime, endTime, trigger, trigger_exec, tempTimer return name, startTime, endTime, trigger, trigger_exec, tempTimer
def deleteFile(self, name): 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 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) real_file_path = os.path.join(script_dir, relative_path)
os.remove(real_file_path) os.remove(real_file_path)