def getint(self,sect,key,defa=0): if not self.cf : return 0 if Funcs.isNoneOrEmpty(sect):return 0 if Funcs.isNoneOrEmpty(key):return 0 if Funcs.isNoneOrEmpty(defa):defa=0 v=0 try: v=self.cf.getint(sect, key) except configparser.NoSectionError as e: try: self.cf.add_section(sect) self.cf.set(sect, key,defa) self.cf.write(open(self.inifile, "w")) except: pass except configparser.NoOptionError as e: try: self.cf.set(sect, key,str(defa)) self.cf.write(open(self.inifile, "w")) except: pass except: pass return v
def __init__(self, locationUrl, username, password): self.cfg = Config() self.url = self.cfg.get('main', 'url') + "/device" self.locationUrl = locationUrl self.username = username self.passwordMD5 = Funcs.md5(password)
def run(self): # 发送=================================================================== self.working = True requireclose = False self.result = "" try: requireclose = False # 发送头信息 client = socket.socket(socket.AF_INET, socket.SOCK_STREAM) client.settimeout(3) res = client.connect_ex((self.ledServerIP, self.ledServerPort)) if res != 0: return '' requireclose = True msg = self.toStr() forsend = msg.encode("UTF-8") # 编码??? client.sendall(forsend) msg = client.recv(1024) res = len(msg) self.result = msg.decode("UTF-8") #print(msg) self.working = False requireclose = False client.close() #发送完毕,断开链接 return self.result except (Exception, IOError) as e: self.working = False Funcs.print("Error: 网络操作异常 ") logging.error(e) if requireclose: requireclose = False try: client.close() except (Exception, IOError): pass return self.result finally: if requireclose: client.close()
def switch(self, data): task = device.switch.Task() task.ip = data["ip"] task.port = data["port"] task.cmd = data["cmd"] task.port = Funcs.toInt(task.port) result = task.run() return result
def sql(self, row): t = time.time() d = time.localtime(time.time()) update = "update " + self._table + " set " insert1 = "insert into " + self._table + " (" insert2 = ")values( " vstr = "" sp = " " for nm in self._workflds: fld = self.getfld(nm) if fld is None: raise InputException(nm, '字段(' + nm + ")不存在") #取值 v = row[nm] fldtype = type(v).__name__ if fldtype == 'bool': if v == True: v = '1' else: v = '0' elif fldtype == 'datetime' or fldtype == 'date' or fldtype == 'time': try: v = v.strftime("%Y-%m-%d %H:%M:%S") except: v = time.strftime("%Y-%m-%d %H:%M:%S", v) v = "STR_TO_DATE('" + v + "','%Y-%m-%d %H:%i:%s')" # 输出:1992-04-12(日期形式) elif fldtype == 'str': v = v.strip() v = v.replace("'", "''") ##防注入 v = "'" + v + "'" elif fldtype == 'int' or fldtype == 'float': v = "'" + str(v) + "'" else: if v == None: v = "null" #拼接sql update = update + sp + fld + "=" + v insert1 = insert1 + sp + fld insert2 = insert2 + sp + v sp = "," if Funcs.isNoneOrEmpty(self._whereValue): insert = insert1 + insert2 + ")" return insert else: self._whereValue = self._whereValue.strip() update = update + " where " + self._whereValue return update
def voice(self, data): task = device.voicemp3.Task() task.ip = data["ip"] task.port = data["port"] task.snlist = data["snlist"] task.voiceFilePath = data["voiceFilePath"] task.snlist = task.snlist.split(',') task.port = Funcs.toInt(task.port) task.start() return task
def send(self): #参数示例 data = {} data["token"] = self.token data["device"] = self.device data["ip"] = self.ip data["port"] = Funcs.toInt(self.port) data["cmd"] = self.cmd result = Proxy.send(self.url, data) return result
def send(self): #参数示例 data = {} data["token"] = self.token data["device"] = self.device data["ip"] = self.ip data["port"] = Funcs.toInt(self.port) data["voiceFilePath"] = self.voiceFilePath data["snlist"] = self.snlist result = Proxy.send(self.url, data) return result #异常返回值为'',正确返回值为1
def base64(self, s): return Funcs.base64encode(s)