def post(self): #数据库校验 username = self.get_argument("un") password = self.get_argument("pw") code = self.get_argument("cd") print username, password, code sqlstr = """SELECT username FROM "user" WHERE username='******' and password='******';""" % ( username, utils.EncrypPassword(password)) rv = GxDB.Query(sqlstr) if rv['error'] != 0: self.write(BaseAPI.ReturnCode(rv['error'], rv['result'])) return if code.lower() != self.session.get('validatecode'): self.write(BaseAPI.ReturnCode(900, '验证码错误')) return #更新登录时间 sqlstr = """UPDATE "user" SET lastloginip='%s' WHERE username = '******'"""\ %(self.request.remote_ip, username) rv = GxDB.Exec(sqlstr) if rv is False: #self.write(BaseAPI.ReturnCode(900, '更新数据库错误')); return #成功了才写入session self.session.set('user', username) self.session.set( 'logintime', time.strftime('%Y-%m-%d(%H.%M.%S)', time.localtime(time.time()))) self.write(BaseAPI.ReturnCode(100))
def GetSearchTop10Info(): sqlstr = """SELECT keywords FROM keywordstatistics ORDER BY times DESC LIMIT 10;""" rv = GxDB.Query(sqlstr) if rv['error'] != 0: return '' fetchlist = rv['result'] if len(fetchlist) == 0: return '' rvlist = [] num = 0 for v in fetchlist: if num == 0: labelstr = 'label label-danger' elif num == 1: labelstr = 'label label-warning' elif num == 2: labelstr = 'label label-primary' elif num == 3: labelstr = 'label label-success' elif num == 4: labelstr = 'label label-info' else: labelstr = 'label label-default' vd = { 'key': (v['keywords']), 'label': labelstr, 'url': '/search?q=%s&p=0' % v['keywords'] } rvlist.append(vd) num += 1 return rvlist
def GetDetail(infohash): sqlstr = """SELECT * FROM "bttorrent" WHERE infohash='%s';""" % infohash rv = GxDB.Query(sqlstr) if rv['error'] != 0: return None fetchlist = rv['result'] return fetchlist[0]
def GetTotalSearchTimesStr(): sqlstr = """SELECT SUM(times) as stimes FROM keywordstatistics;""" rv = GxDB.Query(sqlstr) if rv['error'] != 0: return '' fetchlist = rv['result'] if len(fetchlist) == 0: return '' tonum = fetchlist[0]['stimes'] return str(tonum)
def GetAllSqlData(self, res): idxstr = self._GetResIdxStr(res) if len(idxstr) == 0: return None sqlstr = """SELECT * FROM "bttorrent" WHERE idx IN (%s);""" % idxstr rv = GxDB.Query(sqlstr) if rv['error'] != 0: return None fetchlist = rv['result'] return fetchlist
def get(self): testtype = self.get_argument('type') if testtype == 'login': username = self.get_current_user() if username is None: self.redirect("/") else: self.write(username + '<br>') elif testtype == 'logtest': #log test GLog.Log('所噶!!!说的是呢!') self.write('log test done!') elif testtype == 'db': for i in xrange(10): key = i + 20 if i == 9: key = 1 sqlstr = """INSERT INTO "test" ("id","username") VALUES ('%s','*****@*****.**')""" % key GxDB.TransExec(sqlstr) rv = GxDB.TransCommit() self.write(repr(rv)) elif testtype == 'json': self.set_header("Content-Type", "application/json") jsondict = { 'testkey1': 1, 'testkey2': '2', 'testkey3': 300.0128, 'testkey6': 'kadieolskfj' } self.write(json.dumps(jsondict)) else: self.write('unsupport test type %s <br>' % testtype)
def GetTodayNumStr(): sqlstr = """SELECT count(idx) as todaynum FROM bttorrent WHERE buildtime >= current_date;""" rv = GxDB.Query(sqlstr) if rv['error'] != 0: return '' fetchlist = rv['result'] if len(fetchlist) == 0: return '' tonum = fetchlist[0]['todaynum'] return str(tonum)
def GetTotalNumStr(): sqlstr = """SELECT count(idx) as totalnum FROM bttorrent;""" rv = GxDB.Query(sqlstr) if rv['error'] != 0: return '' fetchlist = rv['result'] if len(fetchlist) == 0: return '' tonum = fetchlist[0]['totalnum'] return str(tonum)
def log(self, infohash): h = infohash.encode("hex") #尝试下载 th = thunder.thunder() info = th.download(h) print '---> Wang Wang! %s <---' % info['name'] name = info['name'].replace('\'', '\'\'') files = info["files"].replace('\'', '\'\'') sqlstr = """INSERT INTO "bttorrent" (infohash, name, length, buildtime, files, hits, downloads) VALUES ('%s', '%s', '%s', '%s', '%s','0','0') """%\ (h, name, info["length"], utils.GetDateTime(info["timestamp"]), files) #print sqlstr GxDB.Exec(sqlstr)
def downtorrent(infohash): try: r = requests.get("http://torrage.com/torrent/%s.torrent" % (infohash, ), timeout=timeout) if r.status_code==200: tc = bdecode(r.content) info = torrentinfo(tc) print '---> wang wang! <---%s'%info['name'] name = info['name'].replace('\'','\'\'') files = info["files"].replace('\'','\'\'') sqlstr = """INSERT INTO "bttorrent" (infohash, name, length, buildtime, files, hits, downloads) VALUES ('%s', '%s', '%s', '%s', '%s','0','0') """%\ (infohash, name, info["length"], utils.GetDateTime(info["timestamp"]), files) #print sqlstr GxDB.Exec(sqlstr) # resourcestore.save(infohash=infohash, name=info["name"], # length=info["length"], timestamp=info["timestamp"], # files=info["files"], hot=1) except Exception, e: print 'downtorrent err:' + repr(e)
def UpdateKeywordStatistics(key): #直接update,如果失败就insert sqlstr = """SELECT mergedb('%s', 1)""" % key GxDB.Query(sqlstr)