Example #1
0
 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
Example #2
0
 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
Example #3
0
    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("]")
Example #5
0
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'])
Example #6
0
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
Example #7
0
    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! '
Example #8
0
    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()
Example #10
0
    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

Example #11
0
            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
Example #12
0
    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: