def regist_url(url,bites=8,hours=48): md5=utility.md5code(url) cinfo = dict(state=0,code="",url=url,expire=0) cinfo.update(RedisCli.hgetall("Q2k:Urls:%s"%md5)) if cinfo["state"]=="0": if cinfo["code"]=="": while True: code = utility.generateCode(bites) if not exists(code): break time.sleep(0.1) cinfo["code"]=code RedisCli.hset("Q2k:Codes", cinfo["code"],url) RedisCli.hset("Q2k:Urls:%s"%md5,"code",cinfo["code"]) RedisCli.hset("Q2k:Urls:%s"%md5,"state",1) #默认将过期时间向后延期 RedisCli.hset("Q2k:Urls:%s"%md5,"expire",time.time()+hours*60*60) return cinfo["code"]
def testGenerateCode(self): code = utility.generateCode(6) self.assertTrue(True, code)
def generateCode(cls,username): cd = "" while SecurityHandler.exists(cd) or cd=="": cd = utility.generateCode(6) SecurityHandler.bindCode(cd,info = dict(username=username),expire= 24*60) return cd