def create_action(self, filename): """ :param filename: 文件名不能全为数字 :return: """ try: int(filename.split(".")[0]) except Exception: file_data = Config(filename.split(".")[0]).data for key, value in file_data.items(): url = key data = value if data is not None and isinstance(data, dict): with open("../actions/" + filename.split(".")[0].capitalize()+"Action.py", "w", encoding='utf-8') as f: f.writelines("# encoding: utf-8\n\nfrom utils.Config import Config\n" "from utils.Util import Request\nfrom backend.Tool import Tool\n" "from utils.Log import Log\nimport json\n\n") f.write("class "+filename.split(".")[0]+"Action(object):\n\n") f.write(" def __init__(self, %s):\n" % filename.split(".")[0]) f.write(" self.log = Log('%s')\n" % filename.split(".")[0]) f.write(" self.request = Request()\n") f.write(" self.%s = %s\n" % (filename.split(".")[0], filename.split(".")[0])) for key, value in data.items(): fun_name = key.replace("/", "_").replace("-", "_") fun_data = "\n def %s(self" % fun_name if value is not None: paramlist = list(value.keys()) for param in paramlist: fun_data += ", " + param fun_data += "):\n" fun_data += " data = self.%s.get('%s').get('%s')\n" % (filename.split(".")[0], url, key) fun_data += " data['_tk_'] = None\n" fun_data += " data['_deviceId_'] = None\n" if value is not None: paramlist = list(value.keys()) for param in paramlist: fun_data += " data['%s'] = %s\n" % (param, param) fun_data += " response = self.request.post(url='%s', data=data)\n" % (url+key) fun_data += " json_response = json.loads(response)\n" fun_data += " if json_response[\"status\"] == \"OK\":\n" fun_data += " pass\n" fun_data += " elif json_response[\"status\"] == \"ERROR\":\n" fun_data += " pass\n" fun_data += " else:\n raise Exception(\"status未返回OK或ERROR\")\n" f.write(fun_data)
def create_action(self, filename): """ :param filename: 文件名不能全为数字 :return: """ if filename == "config.yaml": pass else: try: int(filename.split(".")[0]) except ValueError as e: print(e) file_data = Config(filename.split(".")[1]).data for key, value in file_data.items(): url = key data = value if data is not None and isinstance(data, dict): action_name = filename.split(".")[1].split( "/")[2].split("_")[1].lower() now = datetime.datetime.now().strftime( "%Y-%m-%d_%H%M%S") with open("../actions/" + action_name.capitalize() + "Action_%s.py" % now, "w", encoding='utf-8') as f: f.writelines( "# encoding: utf-8\n\nfrom utils.Config import Config\n" "from utils.Util import Request\nfrom backend.Tool import Tool\n" "from utils.Log import Log\nimport json\n \n") f.write("class " + action_name + "Action(object):\n\n") f.write(" def __init__(self, %s):\n" % action_name) f.write(" self.log = Log('%s')\n" % action_name) f.write(" self.request = Request()\n") f.write(" self.%s = %s\n" % (action_name, action_name)) for key, value in data.items(): fun_name = key.replace("/", "_").replace("-", "_") fun_data = "\n def %s(self" % fun_name if value is not None: paramlist = list(value.keys()) for param in paramlist: fun_data += ", " + param fun_data += "):\n" fun_data += " data = {'_tk_': self.%s.token, '_deviceId_': self.%s.device_id, " \ % (action_name, action_name) if value is not None: paramlist = list(value.keys()) for param in paramlist: fun_data += "'%s': %s, " % (param, param) fun_data = fun_data[:-2] fun_data += "}\n" fun_data += " response = self.request.post(url='%s', data=data)\n" % ( url + key) fun_data += " json_response = json.loads(response)\n" fun_data += " if json_response[\"status\"] == \"OK\":\n" fun_data += " pass\n" fun_data += " elif json_response[\"status\"] == \"ERROR\":\n" fun_data += " pass\n" fun_data += " else:\n raise Exception(\"status未返回OK或ERROR\")\n" f.write(fun_data)