diff --git a/.gitignore b/.gitignore index 754534b..303c6e5 100644 --- a/.gitignore +++ b/.gitignore @@ -7,3 +7,4 @@ stream_sources/chyron.txt stream_sources/brb.txt *.log timers/ +event_logs/logs/ \ No newline at end of file diff --git a/event_logs/event_log_Module.py b/event_logs/event_log_Module.py new file mode 100644 index 0000000..3e683fd --- /dev/null +++ b/event_logs/event_log_Module.py @@ -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 + + + diff --git a/standalone_eventLog.py b/standalone_eventLog.py new file mode 100644 index 0000000..ce3f777 --- /dev/null +++ b/standalone_eventLog.py @@ -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) \ No newline at end of file diff --git a/standalone_user_client.py b/standalone_user_client.py index b1425a1..a104e2b 100644 --- a/standalone_user_client.py +++ b/standalone_user_client.py @@ -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()