223 lines
8.0 KiB
Python
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) |