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 saveCookie(self,cookieJar): cache = BaeMemcache() tempDIR = const.APP_TMPDIR cookieFile = tempDIR+'/cookie.txt' cookieJar.save(cookieFile,ignore_discard=True, ignore_expires=True) #pickle.dump(cookieJar, open(cookieFile,'w')) d = open(cookieFile,'r') ck = d.read() #ck = pickle.dumps(cookieJar,True) cache.delete('cookie') cache.set('cookie',ck) return ck
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 testWeb(request): cache = BaeMemcache() craw = webCrawler() cookies = craw.loadCookie() opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cookies)) m = hashlib.md5('142536') crpt = m.hexdigest() info ={'username':'******','pwd':crpt, 'imgcode':'','f':'json'} data = urllib.urlencode(info) resp = opener.open(BASE_WCURL+'/cgi-bin/login?lang=zh_CN',data) craw.saveCookie(cookies) s=resp.read() ret = json.loads(s) cache.set('token',ret['ErrMsg']) return HttpResponse(ret['ErrMsg'])
def make_cacheable(func): from bae.api.memcache import BaeMemcache cache = BaeMemcache() def wrap(*args, **kwargs): key = '%s %s' % (','.join(str(x) for x in args), ','.join('%s:%s' % (k, v) for k, v in kwargs.items())) value = cache.get(key) if value is None: value = func(*args, **kwargs) cache.set(key, value, 86400) return value return wrap
def plainLogin(self,user,pwd): cache = BaeMemcache() m = hashlib.md5(pwd) crpt = m.hexdigest() info ={'username':user,'pwd':crpt, 'imgcode':'','f':'json'} data = urllib.urlencode(info) #HTTP Fetch #cookies = self.loadCookie() cookies = cookielib.MozillaCookieJar() opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cookies)) resp = opener.open(BASE_WCURL+'/cgi-bin/login?lang=zh_CN',data) #parse response s=resp.read() #log(s) ret = json.loads(s) redir = ret['ErrMsg'] token =matchStr(redir,'[\d]{8,}') #log('token='+token) cache.set('token',token) self.saveCookie(cookies) if(ret['Ret']==302): #login sucess cookies = self.loadCookie() opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cookies)) resp = opener.open(BASE_WCURL+ret['ErrMsg']) rt = self.saveCookie(cookies) return 'Login Success! ' else: #login failed #To-do: Add a verification code handling routine #end to-do self.saveCookie(cookies) return 'Login Failed! '
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()
url = urljoin(BCS_HOST, BUCKET_NAME) + object_name return url, url def delete_file(file_path): from urlparse import urlsplit from settings import BAE_BCS path = urlsplit(file_path).path _, bucket_name, object_name = path.split("/", 2) object_name = "/" + object_name err, resp = BAE_BCS.del_object(bucket_name, object_name) if err != 0: raise Exception(resp) ############################################ ## memcache ############################################ from settings import ENABLE_MEMCACHE if ENABLE_MEMCACHE: from bae.api.memcache import BaeMemcache memcache = BaeMemcache() # bind memcache to BAE memcache.flush_all = lambda cls: None
BAE_BCS.del_object(BUCKET_NAME, object_name) raise Exception(resp) url = urljoin(BCS_HOST, BUCKET_NAME) + object_name return url, url def delete_file(file_path): from urlparse import urlsplit from settings import BAE_BCS path = urlsplit(file_path).path _, bucket_name, object_name = path.split("/", 2) object_name = "/" + object_name err, resp = BAE_BCS.del_object(bucket_name, object_name) if err != 0: raise Exception(resp) ############################################ ## memcache ############################################ from settings import ENABLE_MEMCACHE if ENABLE_MEMCACHE: from bae.api.memcache import BaeMemcache memcache = BaeMemcache() # bind memcache to BAE memcache.flush_all = lambda cls: None
import pylibmc from sae.storage import Bucket bucket = Bucket(Setting.bucket_domain) try: mc = pylibmc.Client() except: error("SAE Memcache Error") def save(filename, filedata): bucket.put_object(filename, filedata) return bucket.generate_url(filename) elif Setting.runtime == "BAE": try: from bae.api.memcache import BaeMemcache mc = BaeMemcache() except: error("BAE Memcache Error") from bae.core import const from bae.api import bcs from bae.api import logging BaeHost = const.BCS_ADDR #logging.debug(BaeHost + Setting.AK + Setting.SK) baebcs = bcs.BaeBCS(BaeHost, const.ACCESS_KEY, const.SECRET_KEY) logging.debug(baebcs.get_acl(Setting.bucket_domain, ' ')) def save(filename, filedata): filename = filename.replace('/', '-') errcode, response = baebcs.put_object(Setting.bucket_domain, filename, filedata) if errcode != 0: