コード例 #1
0
 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)
コード例 #2
0
 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)