Beispiel #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
Beispiel #2
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("]")
Beispiel #4
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()