v2 Standalone Docker Update #40

Merged
alex_orid merged 157 commits from v2.0 into master 2021-05-13 20:36:45 +00:00
Showing only changes of commit b3667bb2fc - Show all commits

104
timers_module.py Normal file
View File

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