Event Module

This commit is contained in:
Alex Orid 2021-05-07 14:55:06 -04:00
parent 579bdcd82e
commit d121753284
4 changed files with 289 additions and 1 deletions

1
.gitignore vendored
View File

@ -7,3 +7,4 @@ stream_sources/chyron.txt
stream_sources/brb.txt
*.log
timers/
event_logs/logs/

View File

@ -0,0 +1,123 @@
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

125
standalone_eventLog.py Normal file
View File

@ -0,0 +1,125 @@
from datetime import datetime
from enum import Enum
from os import F_OK
import tempText_Module
import time
import config as config
import flask
from flask import Flask, request, after_this_request
import credentials
import commands.loader as command_loader
from commands.command_base import AbstractCommand
from cooldowns import Cooldown_Module
import utilities_script as utility
import chyron_module
import timers_module
import random
import event_logs.event_log_Module
import os
import praxis_logging
praxis_logger_obj = praxis_logging.praxis_logger()
praxis_logger_obj.init(os.path.basename(__file__))
praxis_logger_obj.log("\n -Starting Logs: " + os.path.basename(__file__))
api:Flask = Flask(__name__)
api.config["DEBUG"] = True
logging_module = event_logs.event_log_Module.Event_Log_Module()
def init():
print("starting up... ",)
logging_module.main()
def add_event():
logging_module.make_event("Test", str(datetime.now()), "Command", str(random.randint(0,100000)))
def get_events():
logging_module.get_recent_logs(100)
@api.route('/')
def bot_StatusIcon():
@after_this_request
def add_header(response):
response.headers.add('Access-Control-Allow-Origin', '*')
return response
return flask.make_response('Hello There', 200)
@api.route('/api/v1/event_log/status')
def bot_status():
@after_this_request
def add_header(response):
response.headers.add('Access-Control-Allow-Origin', '*')
return response
return flask.make_response('EventLog Service: OK', 200)
@api.route('/api/v1/event_log/add_event')
def add_event_log():
@after_this_request
def add_header(response):
response.headers.add('Access-Control-Allow-Origin', '*')
return response
add_event()
return flask.make_response('EventLog Service: OK', 200)
@api.route('/api/v1/event_log/get')
def get_event_log():
@after_this_request
def add_header(response):
response.headers.add('Access-Control-Allow-Origin', '*')
return response
return flask.make_response('Client Service: OK', 200)
# @api.route('/api/v1/event_log/chyron/get')
# def get_chyron():
# @after_this_request
# def add_header(response):
# response.headers.add('Access-Control-Allow-Origin', '*')
# return response
# return flask.make_response('Client Service: OK', 200)
# @api.route('/api/v1/event_log/commands/get')
# def get_commands():
# @after_this_request
# def add_header(response):
# response.headers.add('Access-Control-Allow-Origin', '*')
# return response
# return flask.make_response('Client Service: OK', 200)
# @api.route('/api/v1/event_log/rewards/get')
# def get_rewards():
# @after_this_request
# def add_header(response):
# response.headers.add('Access-Control-Allow-Origin', '*')
# return response
# return flask.make_response('Client Service: OK', 200)
# @api.route('/api/v1/event_log/timers/get')
# def get_timers():
# @after_this_request
# def add_header(response):
# response.headers.add('Access-Control-Allow-Origin', '*')
# return response
# return flask.make_response('Client Service: OK', 200)
# @api.route('/api/v1/event_log/text_sources/get')
# def get_text_sources():
# @after_this_request
# def add_header(response):
# response.headers.add('Access-Control-Allow-Origin', '*')
# return response
# return flask.make_response('Client Service: OK', 200)
if __name__ == "__main__":
init()
api.run(host="0.0.0.0", port = 42008)

View File

@ -36,13 +36,52 @@ def init():
@api.route('/')
def textSource_test():
def bot_StatusIcon():
@after_this_request
def add_header(response):
response.headers.add('Access-Control-Allow-Origin', '*')
return response
return flask.make_response('Client Service: OK', 200)
@api.route('/api/v1/user_client/chyron/get')
def get_chyron():
@after_this_request
def add_header(response):
response.headers.add('Access-Control-Allow-Origin', '*')
return response
return flask.make_response('Client Service: OK', 200)
@api.route('/api/v1/user_client/commands/get')
def get_commandss():
@after_this_request
def add_header(response):
response.headers.add('Access-Control-Allow-Origin', '*')
return response
return flask.make_response('Client Service: OK', 200)
@api.route('/api/v1/user_client/rewards/get')
def get_rewards():
@after_this_request
def add_header(response):
response.headers.add('Access-Control-Allow-Origin', '*')
return response
return flask.make_response('Client Service: OK', 200)
@api.route('/api/v1/user_client/timers/get')
def get_timers():
@after_this_request
def add_header(response):
response.headers.add('Access-Control-Allow-Origin', '*')
return response
return flask.make_response('Client Service: OK', 200)
@api.route('/api/v1/user_client/text_sources/get')
def get_text_sources():
@after_this_request
def add_header(response):
response.headers.add('Access-Control-Allow-Origin', '*')
return response
return flask.make_response('Client Service: OK', 200)
if __name__ == "__main__":
init()