# -*- coding: utf-8 -*- # myops 通用接口 # python web.py --port=6013 import tornado.ioloop import tornado.web import tornado.options from tornado import gen from myops.mylog import define_logger import logging from config.config import * import pdb from data_channel.gamelog_external import Build_Gamelog_Config from data_channel.mp2shushu import Mp2shushu from deploy.deploy_keys import DeployKeys from deploy.clear_service_data import ClearService from online.online_data import OnlineData2mysql import json define_logger("ops_interface.log") log = logging.getLogger(__name__) tornado.options.define("port", default=interface_port, type=int, help="run server on the given port.") class DispatchHandler(tornado.web.RequestHandler): @gen.coroutine def get(self): if self.get_query_argument('c') == 'Ops' and self.get_query_argument('a') == 'sync_log_conf': print("start sync_log_conf! ") self._selfgamelogexternal() elif self.get_query_argument('c') == 'Ops' and self.get_query_argument('a') == 'mp2ss': yield self._selfmp2ss() if self.get_query_argument('c') == 'Ops' and self.get_query_argument('a') == 'user_online': print(f"get user_online get") self._user_online() elif self.get_query_argument('c') == 'Ops' and self.get_query_argument('a') == 'clear_redis': yield self._selfclear_redis() elif self.get_query_argument('c') == 'Deploy' and self.get_query_argument('a') == 'keys': yield self._selfdeploykeys() else: self.write("pls check args!") # @gen.coroutine # def post(self): # print(f"post {self.get_argument()}") # log.info(f"get requests {self.request.body_arguments}") # if self.get_query_argument('c') == 'Ops' and self.get_query_argument('a') == 'user_online': # print(f"get user_online get") # self._user_online() def _user_online(self): # post_data = self.request.body_arguments # print(post_data) # post_data = {x: post_data.get(x)[0].decode("utf-8") for x in post_data.keys()} # if not post_data: # post_data = self.request.body.decode('utf-8') # post_data = json.loads(post_data) # param = self.request.body.decode('utf-8') # prarm = json.loads(param) post_data = {} # zone_id=10000&number=0&sign=de2e4303b3a4154a9a813a44ecd645f5&channel_id=0&game_id=5213 post_data['zone_id'] = self.get_query_argument('zone_id') post_data['number'] = self.get_query_argument('number') post_data['channel_id'] = self.get_query_argument('channel_id') post_data['game_id'] = self.get_query_argument('game_id') post_data['gamename'] = 'wjtx' # log.info(f"get user_online prarm was {post_data}") aa = OnlineData2mysql(post_data) aa.run() def _selfdeploykeys(self): try: project = self.get_query_argument('project') dk = DeployKeys(project) dk.run() except Exception: log.error(f"deploy keys with {project} failed", exc_info=True) def _selfclear_redis(self): try: accountid = self.get_query_argument('accountid') cc = ClearService(accountid) cc.clear_rediskey() except Exception: log.error(f"clear keys with {accountid} failed", exc_info=True) def _selfgamelogexternal(self): try: cc = Build_Gamelog_Config() cc.run() except Exception: return self.write({'errcode': 2, "errmsg": 'Failed'}) return self.write({'errcode': 0, "errmsg": ''}) def _selfmp2ss(self): log.info("start mp2ss") try: ss = Mp2shushu(2001, 6001) ss.run() except Exception: return self.write({'errcode': 2, "errmsg": 'Failed'}) return self.write({'errcode': 0, "errmsg": ''}) def make_app(): return tornado.web.Application([(r"/webapp/index[\.]php", DispatchHandler)]) if __name__ == "__main__": print('start!') tornado.options.parse_command_line() app = make_app() app.listen(tornado.options.options.port) tornado.ioloop.IOLoop.current().start()