from enum import Enum from os import F_OK import tempText_Module import time import config as config from datetime import datetime import re from json import loads from urllib.parse import urlencode import requests 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 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 def init(): print("starting up... ",) def handle_request_get(requestName, requestType, requestData): if requestType == "list": if requestName == "Chyron": response = request_get_list("XXXXXXXXX", "42010") return flask.make_response("{\"message\": \"%s\"}" % response, 200, {"Content-Type": "application/json"}) if requestName == "Commands": response = request_get_list("standalone_command", "42010") return flask.make_response("{\"message\": \"%s\"}" % response, 200, {"Content-Type": "application/json"}) if requestName == "Rewards": response = request_get_list("standalone_channelrewards", "42069") return flask.make_response("{\"message\": \"%s\"}" % response, 200, {"Content-Type": "application/json"}) if requestName == "Timers": response = request_get_list("XXXXXXXXX", "42010") return flask.make_response("{\"message\": \"%s\"}" % response, 200, {"Content-Type": "application/json"}) if requestName == "TextSources": response = request_get_list("XXXXXXXXX", "42010") return flask.make_response("{\"message\": \"%s\"}" % response, 200, {"Content-Type": "application/json"}) if requestName == "EventHistory": params = urlencode( {'request_name': requestName, 'request_type': requestType, 'request_data': requestData}) response = request_get_eventlist(params) return flask.make_response("{\"message\": \"%s\"}" % response, 200, {"Content-Type": "application/json"}) else: return flask.make_response("{\"message\": \"%s\"}" % "message123123", 200, {"Content-Type": "application/json"}) def request_get_list(serviceName, servicePort): try: url = "http://"+ "127.0.0.1" + ":"+ 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: return msg # todo send to logger and other relevent services else: # todo handle failed requests return None except: return None def request_get_eventlist(params): try: url = "http://standalone_eventlog:42008/api/v1/event_log/get_events?%s" % params 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: return msg # todo send to logger and other relevent services else: # todo handle failed requests return None except: return None def handle_request_set(requestName, requestType, requestData): if requestType == "update": if requestName == "Chyron": pass if requestName == "Commands": pass elif requestType == "delete": if requestName == "Chyron": pass if requestName == "Commands": pass @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('Client Service: OK', 200) @api.route('/api/v1/user_client/get', methods=['GET']) def get_data(): @after_this_request def add_header(response): response.headers.add('Access-Control-Allow-Origin', '*') return response if 'request_name' not in request.args: return flask.make_response('{\"text\":"Argument \'request_name\' not in request"}', 400) if 'request_type' not in request.args: return flask.make_response('{\"text\":"Argument \'request_type\' not in request"}', 400) if 'request_data' not in request.args: requestData = None else: requestData = request.args['request_data'] return handle_request_get(request.args['request_name'], request.args['request_type'], requestData) if __name__ == "__main__": init() api.run(host="0.0.0.0", port = 5500)