示例#1
0
    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)
示例#3
0
    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()
示例#4
0
    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
示例#5
0
    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
示例#6
0
    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
示例#8
0
    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
示例#9
0
 def base64(self, s):
     return Funcs.base64encode(s)