Example #1
0
  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}))
    '''
Example #2
0
  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}))