-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathspp.py
More file actions
104 lines (85 loc) · 3.24 KB
/
spp.py
File metadata and controls
104 lines (85 loc) · 3.24 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
import json
import logging, coloredlogs
import datetime
import dateutil.parser
import uuid, pytz
logger = logging.getLogger(__name__)
coloredlogs.install(level='INFO')
class SPP:
def __init__(self):
self.__enabled = False
self.__start_time = datetime.datetime.now()
self.__end_time = datetime.datetime.now()
self.__username = ""
self.__priority = 10
self.__uuid = ""
def load_spp(self, spp_dict, username=None):
if username is None:
self.__username = spp_dict.get("username")
self.__enabled = spp_dict.get("enabled")
self.__start_time = dateutil.parser.parse(spp_dict.get("start_time"))
self.__end_time = dateutil.parser.parse(spp_dict.get("end_time"))
self.__priority = spp_dict.get("priority")
self.__uuid = spp_dict.get("uuid")
return ""
else:
self.__username = username
self.__uuid = str(uuid.uuid4())
try:
if isinstance(spp_dict.get("enabled"), bool):
self.__enabled = spp_dict.get("enabled")
else:
raise Exception()
except:
return "Could not parse enabled variable. Check the type (bool)."
try:
if isinstance(spp_dict.get("priority"), int):
self.__priority = spp_dict.get("priority")
else:
raise Exception()
except:
return "Could not parse priority variable. Check the type (int)."
try:
if isinstance(spp_dict.get("start_time"), str):
self.__start_time = dateutil.parser.parse(spp_dict.get("start_time"))
else:
raise Exception()
except:
return "Could not parse start_date variable. Check it is in ISO 8601 format (str)"
try:
if isinstance(spp_dict.get("end_time"), str):
self.__end_time = dateutil.parser.parse(spp_dict.get("end_time"))
else:
raise Exception()
except:
return "Could not parse end_date variable. Check it is in ISO 8601 format (str)"
return ""
def __is_spp_time(self):
now = datetime.datetime.now(pytz.timezone("UTC"))
logger.info(now)
logger.info(self.__start_time)
if self.__start_time < now and self.__end_time > now and self.__enabled == True:
return True
return False
def is_spp(self):
if self.__enabled and self.__is_spp_time():
return True
return False
def invert_status(self):
self.__enabled = not self.__enabled
def enable(self):
self.__enabled = True
def disable(self):
self.__enabled = False
def get_username(self):
return self.__username
def get_uuid(self):
return self.__uuid
def get_priority(self):
return self.__priority
def get_enabled(self):
return self.__enabled
def get_start_time(self):
return self.__start_time
def get_end_time(self):
return self.__end_time