def get(self,gender): randpage = random.randrange(1,7) ## in memcache parameter if gender == 'girl': gq = 0 ## in memcache parameter title = 'Girls' else: gq = 1 ## in memcache parameter title = 'Boys' rno = random.randrange(1,6) ## in memcache parameter if rno == 1: rq = 'avatar > 500' elif rno == 2: rq = 'avatar <= 500 and avatar > 400' elif rno == 3: rq = 'avatar <= 400 and avatar > 300' elif rno == 4: rq = 'avatar <= 300 and avatar > 200' elif rno == 5: rq = 'avatar <= 200 and avatar > 100' else: rq = 'avatar <= 100' ''' memcache namespace [1:5]avatar[1:2][1:4] [randpage][gender][rno] namespace: avatarpage ''' memname = str(randpage) + str(gender) + str(rno) op = memcache.get(memname,'avatarpage') if op: logging.info('Useing memcache avatar page. #%s' % memname) self.response.out.write(template.render('./template/h_listk.htm',{'op':op,'title':title})) else: op = '' d = userplurkdata.gql("WHERE gender = %s and %s ORDER BY avatar desc limit %s,%s" % (gq,rq,random.randrange(1,1000 - 60),60)) for i in d: if i.avatar > 500: url = "/byid?u=%s" % i.key().id_or_name() else: url = "/?u=%s" % i.uname op += '<a href="%s"><img alt="" src="http://avatars.plurk.com/%s-big%s.jpg"></a>' % (url,i.key().id_or_name(),i.avatar) if op: if memcache.set(memname,op,60*60*24,namespace='avatarpage'): logging.info('Set memcache avatar page. #%s' % memname) else: pass else: pass if op == '': logging.info('Avatar page redirect. #%s' % self.request.path_qs) self.redirect(self.request.path_qs) else: self.response.out.write(template.render('./template/h_listk.htm',{'op':op,'title':title})) '''
def get(self): p2uinmem = [] p2u = {} tv = {} get_u = str(self.request.get('u').replace(' ','')) if len(get_u) == 0: pass else: if get_u.isdigit() == False: q = userplurkdata.gql("WHERE uname = '%s'" % get_u) if q.count() == 0: try: uname = get_u.lower() uno = memcache.get(uname) if uno: logging.info('Useing memcache: %s %s' % (uname,uno)) self.redirect('/byid?u=%s' % uno) else: p = plurklib.PlurkAPI('mCDwgcld4WKj1GFzZPB7mJlgm9lSHwks') uno = p.usernameToUid(uname) memcache.set(uname,uno) logging.info('Add memcache: %s %s' % (uname,uno)) self.redirect('/byid?u=%s' % uno) except: logging.info('plurklib connect error.(by user nickname)') self.redirect('/') else: for i in q: p2u['key'] = i.key().id_or_name() p2u['uname'] = i.uname p2u['fullname'] = i.fullname p2u['birthday'] = i.birthday p2u['location'] = i.location p2u['avatar'] = i.avatar p2uinmem.append(p2u.copy()) else: try: q = userplurkdata.get_by_key_name(get_u) p2u['key'] = q.key().id_or_name() p2u['uname'] = q.uname p2u['fullname'] = q.fullname p2u['birthday'] = q.birthday p2u['location'] = q.location p2u['avatar'] = q.avatar p2uinmem.append(p2u.copy()) except: try: p = plurklib.PlurkAPI('mCDwgcld4WKj1GFzZPB7mJlgm9lSHwks') uno = p.usernameToUid(get_u) self.redirect('/byid?u=%s' % uno) except: logging.info('plurklib connect error.(by search uid)') self.redirect('/') op = u'<div class="listq">序號 ID 暱稱 生日 地區 頭像數</div>' for i in p2uinmem: if i['avatar'] > 0: tv['avatar'] = i['avatar'] else: i['avatar'] = None tv['avatar'] = 0 if len(p2uinmem) > 1: op += u''' <a href="/byid?u=%(key)s"><div class="listq"><span id="uid">%(key)s</span> %(uname)s %(fullname)s %(birthday)s %(location)s <span id="no">%(avatar)s</span></div></a><br> ''' % i tv['key'] = i['key'] else: op += u''' <div class="listq"><a href="/byid?u=%(key)s"><span id="uid">%(key)s</span></a> %(uname)s %(fullname)s %(birthday)s %(location)s <span id="no">%(avatar)s</span></div> <button type="button" onclick="addpics()">增加顯示照片</button><br> <span id="demo"></span><br> <span id="loadpics"></span><br> <img alt="" src="http://avatars.plurk.com/%(key)s-big.jpg"> ''' % i tv['key'] = i['key'] tv['op'] = op tv['nick_name'] = get_u tv['moreavatar'] = ['看更多<a href="/avatar/girl">正妹的頭像</a>','看更多<a href="/avatar/boy">猛男的頭像</a>',''] self.response.out.write(template.render('./template/h_index.htm',{'tv':tv}))