Create timers_module.py
This commit is contained in:
parent
572817a006
commit
b3667bb2fc
104
timers_module.py
Normal file
104
timers_module.py
Normal 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()
|
||||||
Loading…
Reference in New Issue
Block a user