def testSend(self,content): cache = BaeMemcache() token = cache.get('token') #log(token) fakeid = '1440591140' SENDER_DATA['tofakeid']=fakeid SENDER_DATA['token']=token SENDER_DATA['content']=content data = urllib.urlencode(SENDER_DATA) cookies = self.loadCookie() opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cookies)) #opener.addheaders=[('Referer',BASE_WCURL+USERS_URL%(token,0))] #resp = opener.open(SENDER_REF%(token,fakeid)) #rt = resp.read() #opener.addheaders=[('Referer',BASE_WCURL+SENDER_REF%(token,fakeid))] opener.addheaders=[('Referer',BASE_WCURL+INDEX_URL%token)] resp = opener.open(BASE_WCURL+SENDER_URL,data) #log(BASE_WCURL+SENDER_URL+data) rt=resp.read() self.saveCookie(cookies) return rt
def loadCookie(self): cache = BaeMemcache() cookie = cache.get('cookie') #cache.delete('cookie') #log(cookie) tempDIR = const.APP_TMPDIR cookieFile = tempDIR+'/cookies.txt' d = open(cookieFile,'w') d.write(cookie) d.close() cookies = cookielib.MozillaCookieJar(cookieFile) cookies.load(cookieFile,ignore_discard=True, ignore_expires=True) #cookies = pickle.loads(cookie) # cache.delete('cookie') return cookies
def get(self): cache = BaeMemcache() ranking = cache.get('ranking') ret = [] self.response.headers['Content-Type'] = 'text/plain' c = 0 self.response.write("[") for r in ranking: if c != 0: self.response.write(",") self.response.write("'") self.response.write(r[0]) self.response.write("',") self.response.write(r[1]) c = 1 self.response.write("]")
def sendWCMsg(self,content,fakeId): """Send Message to user identified by the fakeid""" cache = BaeMemcache() token = cache.get('token') #log(token) SENDER_DATA['tofakeid']=fakeId SENDER_DATA['token']=token SENDER_DATA['content']=content data = urllib.urlencode(SENDER_DATA) cookies = self.loadCookie() opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cookies)) opener.addheaders=[('Referer',BASE_WCURL+SENDER_REF%(token,fakeId))] resp = opener.open(BASE_WCURL+SENDER_URL,data) rt=resp.read() self.saveCookie(cookies) ret = json.loads(rt) if(ret['ret']=='0'): return 'OK' else: return 'Failed.'
def get(self): self.response.headers['Content-Type'] = 'text/plain' ranking = [] m = md5.new() m.update(self.request.get('p')) key = m.digest() cache = BaeMemcache() if cache.get(key) != None: self.response.write(cache.get(key)) return if cache.get('ranking') != None : ranking = cache.get('ranking') lim = dict({'SO2': 2.5, 'CO': 0.25, 'O3': 25, 'PM10': 17, 'NO2': 11}) mydb = MySQLdb.connect( host = const.MYSQL_HOST,port = int(const.MYSQL_PORT), user = const.MYSQL_USER, passwd = const.MYSQL_PASS, db = '') cursor = mydb.cursor() cursor.execute('select * from sites') rows = cursor.fetchall() if self.request.get('debug') == 'true': self.response.write(self.request.get('p')) else: p = eval(self.request.get('p')) ret = [] sum = 0 for pp in p['checkins']: date = pp['date'] yy = str(date[0:4]) mm = str(int(date[5:7])) dd = str(int(date[8:10])) hh = str(int(date[11:13])) lat = pp['lat'] lon = pp['lng'] min = 1111 id = 1 for row in rows: x = lat - float(row[1]) y = lon - float(row[2]) if x < 0: x = x * -1 if y < 0: y = y * -1 distance = x + y if distance < min: min = distance id = row[0] id = str(id) cmd = 'select type, val from data2 where id=' + id + ' and yy=' + yy + ' and mm=' + mm + ' and dd=' + dd + ' and hh=' + hh + ' limit 100' cursor.execute(cmd) vals = cursor.fetchall() score = 0 for val in vals: type = val[0] value = val[1] if type in lim: score = score + value - lim[type] ret.append(score*21 + 123) sum += score*21 + 123 ranking.append((self.request.get('username') , sum)) ranking = sorted(set(ranking), key=lambda x: x[1], reverse=True) cache.set('ranking', ranking) if self.request.get('debug') == 'test': for r in ranking: self.response.write(r) self.response.write(ret) cache.set(key, str(ret)) mydb.close()