Praxis_Bot/standalone_eventLog.py
2021-05-13 15:04:32 -04:00

223 lines
8.0 KiB
Python

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 requests
import random
import json
from json import loads
from urllib.parse import urlencode
import base64
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(eventName, eventTime, eventType, eventSender, eventData):
logging_module.make_event(eventName, eventTime, eventType, eventSender, eventData)
return flask.make_response("{\"message\":\"%s\"}" % None, 200, {"Content-Type": "application/json"})
def get_events():
#returnedData = logging_module.get_recent_logs(50)
try:
masterDic = {}
newDic = {}
counter = 0
for event in logging_module.Event_Log_List:
#praxis_logger_obj.log("get event history debug thing: "+ str(event))
#recentLog = self.Event_Log_List[-x]
newDic['eventName'] = str(event.eventName)
newDic['eventTime'] = str(event.eventTime)
newDic['eventType'] = str(event.eventType)
newDic['eventSender'] = str(event.eventSender)
newDic['eventData'] = str(event.eventData)
masterDic[str(counter)] = newDic
counter = counter + 1
newDic = {}
except:
masterDic = {}
#returnedData = [""]
#praxis_logger_obj.log("\nGotten Events" + str(masterDic))
#print("\nGotten Events" + masterDic)
payload = json.dumps(masterDic)
payload = base64.b64encode(str.encode(payload))
return flask.make_response("{\"message\":\"%s\"}" % payload.decode(), 200, {"Content-Type": "application/json"})
def reRunEvent_handler(eventName, eventTime, eventType, eventSender, eventData):
returnString = attempt_Event_Rerun(eventName, eventTime, eventType, eventSender, eventData)
return flask.make_response("{\"message\":\"%s\"}" % returnString, 200, {"Content-Type": "application/json"})
def attempt_Event_Rerun(eventName, eventTime, eventType, eventSender, eventData):
returnString = ""
try:
if "reward" in eventType:
pass
return returnString
except:
returnString = "Something Went Wrong!"
return returnString
def attempt_Event_Rerun_Send(serviceName, servicePort, params):
try:
url = "http://"+ serviceName + ":"+ servicePort + "/api/v1/get_list/all"
resp = requests.get(url)
if resp.status_code == 200:
print("Got the following message: %s" % resp.text)
data = loads(resp.text)
msg = data['message']
if msg is not None:
praxis_logger_obj.log(msg)
return msg
# todo send to logger and other relevent services
else:
# todo handle failed requests
return flask.make_response("{\"message\": \"%s\"}" % "Minor Mess up on attempt_Event_Rerun_Send", 200, {"Content-Type": "application/json"})
except:
return flask.make_response("{\"message\": \"%s\"}" % "Major Mess up on attempt_Event_Rerun_Send", 200, {"Content-Type": "application/json"})
@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
if 'event_name' not in request.args:
return flask.make_response('{\"text\":"Argument \'event_name\' not in request"}', 400)
if 'event_time' not in request.args:
return flask.make_response('{\"text\":"Argument \'event_time\' not in request"}', 400)
if 'event_type' not in request.args:
return flask.make_response('{\"text\":"Argument \'event_type\' not in request"}', 400)
if 'eventSender' not in request.args:
return flask.make_response('{\"text\":"Argument \'eventSender\' not in request"}', 400)
if 'event_data' not in request.args:
return flask.make_response('{\"text\":"Argument \'event_data\' not in request"}', 400)
return add_event(request.args['event_name'], request.args['event_time'], request.args['event_type'], request.args['eventSender'], request.args['event_data'],)
@api.route('/api/v1/event_log/get_events')
def get_event_log():
@after_this_request
def add_header(response):
response.headers.add('Access-Control-Allow-Origin', '*')
return response
if 'request_data' not in request.args:
requestData = 50
return get_events()
@api.route('/api/v1/event_log/reRunEvent')
def reRunEvent():
@after_this_request
def add_header(response):
response.headers.add('Access-Control-Allow-Origin', '*')
return response
if 'eventName' not in request.args:
return flask.make_response('{\"text\":"Argument \'eventName\' not in request"}', 400)
if 'eventTime' not in request.args:
sentTime = request.args('eventTime')
else:
sentTime = None
if 'eventType' not in request.args:
return flask.make_response('{\"text\":"Argument \'eventType\' not in request"}', 400)
if 'eventSender' not in request.args:
return flask.make_response('{\"text\":"Argument \'eventSender\' not in request"}', 400)
if 'eventData' not in request.args:
return flask.make_response('{\"text\":"Argument \'eventData\' not in request"}', 400)
return reRunEvent_handler(request.args['eventName'], sentTime, request.args['eventType'], request.args['eventSender'], request.args['eventData'])
# @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)