124 lines
4.4 KiB
Python
124 lines
4.4 KiB
Python
from datetime import datetime
|
|
import random
|
|
import os
|
|
import json
|
|
import utilities_script as utility
|
|
|
|
from os import listdir
|
|
from os.path import isfile, join
|
|
|
|
class event_log():
|
|
def __init__(self, eventName, eventTime, eventType, eventData):
|
|
super().__init__()
|
|
self.eventName = eventName
|
|
self.eventTime = eventTime
|
|
self.eventType = eventType
|
|
self.eventData = eventData
|
|
|
|
|
|
class Event_Log_Module():
|
|
def __init__(self):
|
|
super().__init__()
|
|
self.Event_Log_List = []
|
|
self.Event_Log_FileName_Bonus = "%s_%s_%s-%s_%s_%s_event_log" % (str(datetime.now().year), str(datetime.now().month), str(datetime.now().day),str(datetime.now().hour), str(datetime.now().minute), str(datetime.now().second))
|
|
self.Event_Log_FileName = "COMPLETE_event_log"
|
|
|
|
def main(self):
|
|
self.load_HistoricLogs()
|
|
|
|
def makeFile(self, fileName):
|
|
dir = utility.get_dir("event_logs/logs")
|
|
script_dir = os.path.dirname(__file__) #<-- absolute dir the script is in
|
|
relative_path = fileName + ".json"
|
|
real_file_path = os.path.join(script_dir, dir, relative_path)
|
|
|
|
# with open(real_file_path, 'w') as cred_w:
|
|
# #data = json.load(event_log_obj)
|
|
# dic = {}
|
|
# dic['eventName'] = event_log_obj.eventName
|
|
# dic['eventTime'] = str(event_log_obj.eventTime)
|
|
# dic['eventType'] = str(event_log_obj.eventType)
|
|
# dic['eventData'] = str(event_log_obj.eventData)
|
|
# json.dump(dic, cred_w, indent=2)
|
|
|
|
newList = []
|
|
for event in self.Event_Log_List:
|
|
newDic = {}
|
|
newDic['eventName'] = event.eventName
|
|
newDic['eventTime'] = str(event.eventTime)
|
|
newDic['eventType'] = str(event.eventType)
|
|
newDic['eventData'] = str(event.eventData)
|
|
newList.append(newDic)
|
|
with open(real_file_path, 'w') as logFile:
|
|
json.dump(newList, logFile, indent=2)
|
|
|
|
def readFile(self, fileName):
|
|
dir = utility.get_dir("event_logs/logs")
|
|
script_dir = os.path.dirname(__file__) #<-- absolute dir the script is in
|
|
relative_path = fileName + ".json"
|
|
real_file_path = os.path.join(script_dir, dir, relative_path)
|
|
|
|
newList = []
|
|
with open(real_file_path, 'r') as eventlog_:
|
|
data = json.load(eventlog_)
|
|
for d in data:
|
|
eventName = d['eventName']
|
|
eventTime = d['eventTime']
|
|
eventType = d['eventType']
|
|
eventData = d['eventData']
|
|
|
|
foundLog = event_log(eventName, eventTime, eventType, eventData)
|
|
newList.append(foundLog)
|
|
return newList
|
|
|
|
def deleteFile(self, fileName):
|
|
dir = utility.get_dir("event_logs/logs")
|
|
script_dir = os.path.dirname(__file__) #<-- absolute dir the script is in
|
|
relative_path = fileName + ".json"
|
|
real_file_path = os.path.join(script_dir, dir, relative_path)
|
|
os.remove(real_file_path)
|
|
|
|
def get_base_dir(self) -> str:
|
|
cwd = os.getcwd()
|
|
split = os.path.split(cwd)
|
|
current = split[len(split) - 1]
|
|
if current == 'event_logs/logs':
|
|
return self.check_dir(cwd)
|
|
elif current == 'Praxis_Bot' or current == 'Praxis':
|
|
return self.check_dir(os.path.join(cwd, "event_logs/logs"))
|
|
else:
|
|
print("could not find working directory for Praxis_Bot/event_logs/logs")
|
|
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 make_event(self, eventName, eventTime, eventType, eventData):
|
|
newLog = event_log(eventName, eventTime, eventType, eventData)
|
|
self.Event_Log_List.append(newLog)
|
|
self.makeFile(self.Event_Log_FileName)
|
|
self.makeFile(self.Event_Log_FileName_Bonus)
|
|
return newLog
|
|
|
|
def get_recent_logs(self, howFarBack):
|
|
newList = []
|
|
for x in range(howFarBack):
|
|
recentLog = [-x]
|
|
newList.append(recentLog)
|
|
return newList
|
|
|
|
def load_HistoricLogs(self):
|
|
try:
|
|
self.Event_Log_List = self.readFile(self.Event_Log_FileName)
|
|
self.makeFile(self.Event_Log_FileName)
|
|
except:
|
|
pass
|
|
|
|
|
|
|