Пример #1
0
 def get(self):
     joke=self.request.get('joke')
     limit=self.request.get('limit')
     if not limit:
         limit=20
     else:
         limit=int(limit)
     type=self.request.get('type')
     if not type:
         type=3
     else:
         type=int(type)
     memkey='d'+str(limit)+joke+str(type)
     jlist=memcache.get(memkey)
     if not jlist:
         jlist=NewJoke.all()
         if joke:
             joke=NewJoke.get_by_key_name(joke)
         if joke:
             jlist=jlist.filter('updateTime >',joke.updateTime)
         if type:
             jlist=jlist.filter('type =',type)
         jlist=jlist.order('updateTime').fetch(limit)
         memcache.set(memkey,jlist,7200)
     xml,datas=list2xml(jlist)
     datas.setAttribute('aPhoneVerson',str(setting.aPhoneVerson))
     datas.setAttribute('aPhoneURI',setting.aPhoneURI)
     datas.setAttribute('ADTime',str(setting.ADTime))
     self.response.out.write(xml.toxml('utf-8'))
Пример #2
0
 def get(self):
     checkJoke=JokeCheck.get_by_key_name('check')
     checkJoke=NewJoke.get_by_key_name(checkJoke.lastCheckJoke)
     if checkJoke:
         hahalist=NewJoke.all().filter('updateTime >',checkJoke.updateTime).order('updateTime').fetch(40)
     else:
         hahalist=NewJoke.all().order('updateTime').fetch(40)
     self.render('templates/check.html',{'hahalist':hahalist})
Пример #3
0
 def get(self,jokeid=None):
     html=memcache_get('joke'+jokeid)
     if not html :
         ha=NewJoke.get_by_key_name(jokeid)
         html=self.obj2str('templates/jokedetail.html',{'ha':ha,'uuid':str(uuid.uuid4()),'guest':{}})
         memcache_set('joke'+jokeid,html,720000)
     self.flashhtml(html)
Пример #4
0
    def post(self):
        jokeids=self.request.get('jokeids')
        checkJoke=JokeCheck.get_by_key_name('check')
        if not checkJoke:
            checkJoke=JokeCheck(key_name='check')
        checkJoke.lastCheckJoke=jokeids
        checkJoke.put()
        delids=self.request.get_all('delid')
#        for name,id in self.request.POST.multi:
#            if name=='jokeids':
#                jokeids.append(id)
#            if name=='delid':
#                delids.append(id)
#        jokeids=self.request.get('jokeids').split(',')
#
#        delids=self.request.get('delid').split(',')

#        ids=[]
#        for id in  jokeids:
#            if id not in delids:
#                ids.append(id)
#        js=[]
#        for j in Joke.get_by_key_name(ids):
#            #j=Joke.get_by_key_name(id)
#            j.isCheck=True
#            js.append(j)
#        db.put(js)

        deljoke=NewJoke.get_by_key_name(delids)
        if deljoke:
            db.delete(deljoke)
        self.redirect('/check')
Пример #5
0
 def get(self):
     username=self.request.get('username')
     userpwd=self.request.get('userpwd')
     jokeid=self.request.get('jokeid')
     website=self.request.get('website')
     joke=NewJoke.get_by_key_name(jokeid)
     msg=''
     if not joke:
         self.response.out.write(u'该条笑话在服务器上已经删除。')
         return
     user=User.get_by_key_name('u'+username)
     if not user:
         self.response.out.write(u'用户不存在。')
         return
     elif user.pwd!=userpwd:
         self.response.out.write(u'用户密码错误。')
         return
     else:
         joke.joke=html_parser.unescape(joke.joke).replace('<br/>','\n')
         if 'sina' in website:
             text=joke.joke
             isSuccess=False
             while text:
                 if sinaWeibo.sendWeibosina(username,user.sinaSecret,user.sinaExpires,text[:90]+sinawebtext):
                     isSuccess=True
                 text=text[90:]
             if isSuccess:
                 msg+=u'新浪微博发送成功。'
             else:
                 msg+=u'新浪微博发送失败。'
         if 'wy' in website:
             text=joke.joke
             isSuccess=False
             while text:
                 if wyWeibo.sendWeibowy(user.wyToken,user.wySecret,text[:90]+wywebtext):
                     isSuccess=True
                 text=text[90:]
             if isSuccess:
                 msg+=u'网易微博发送成功。'
             else:
                 msg+=u'网易微博发送失败。'
         if 'teng' in website:
             text=joke.joke
             isSuccess=False
             while text:
                 if tengWeibo.sendWeiboteng(user.tengToken,user.tengSecret,text[:90]+tengwebtext):
                     isSuccess=True
                 text=text[90:]
             if isSuccess:
                 msg+=u'腾讯微博发送成功。'
             else:
                 msg+=u'腾讯微博发送失败。'
         if msg:
             self.response.out.write(msg)
         else:
             self.response.out.write(u'未发送微博。')
Пример #6
0
def skin(self,html):
    defaultDate=DefaultDate.get_by_key_name('date')
    jokeskin = JokePage()
    jokeskin.clearHtml()
    jokeskin.feed(str(html))

    for j in jokeskin.l:
        try:
            joke= NewJoke.get_by_key_name('j'+j.get('jid'))
            if not joke:
                joke=NewJoke(key_name='j'+j.get('jid'))
                joke.date=defaultDate.date
            joke.joke = j.get('jokecontent','').strip().decode('utf-8')
            if j.get('img',''):
                joke.img = j.get('img').replace('/small/','/big/')
                joke.type=2
            else:
                joke.type = 3
            joke.put()
        except Exception,e:
            logging.error('111:'+str(e))
Пример #7
0
    def get(self,date=None,page=1,limit=20):
        perdate=''
        afterdate=''
        if None==date:
            defaultdate=DefaultDate.get_by_key_name('date')
            date=defaultdate.date
            afterdate='flage'

        html=memcache_get('date'+date+'page'+str(page)+'limit'+str(limit))
        if html:
            return self.flashhtml(html)
        perdate=(datetime.datetime.strptime(date,'%Y%m%d')-datetime.timedelta(hours =24)).strftime('%Y%m%d')
        if not afterdate:
            afterdate=(datetime.datetime.strptime(date,'%Y%m%d')+datetime.timedelta(hours =24)).strftime('%Y%m%d')
        else:
            afterdate=''
        if page:
            page=int(page)
        if limit:
            limit=int(limit)
        hahamap=memcache.get('query:date'+date+'page'+str(page)+'limit'+str(limit))
        if not hahamap:
            hahalist=[]
            for joke in NewJoke.all().filter('date =',date).order('-updateTime'):
                hahalist.append(joke)
            total=int(len(hahalist)/limit)
            for i in range(total):
                if i==(total-1):
                    memcache.set('query:date'+date+'page'+str(i+1)+'limit'+str(limit),{'hahalist':hahalist[i*limit:],'total':len(hahalist)},3600*72)
                else:
                    memcache.set('query:date'+date+'page'+str(i+1)+'limit'+str(limit),{'hahalist':hahalist[i*limit:(i+1)*limit],'total':len(hahalist)},3600*72)
        hahamap=memcache.get('query:date'+date+'page'+str(page)+'limit'+str(limit))
        if not hahamap:
            self.redirect('/%s/1/%s'%(perdate,limit))
            return
        totalpage=hahamap.get('total',0)
        nowpage=None
        pagelist=[]
        for p in range(int(totalpage/limit)):
            if (page-1)==p:
                nowpage='/%s/%s/%s'%(date,(p+1),limit)
            pagelist.append({'page':'/%s/%s/%s'%(date,(p+1),limit),'pagenum':p+1})
        if perdate==date:
            perdate=''
        html=self.obj2str('templates/jokeindex.html',{'hahalist':hahamap.get('hahalist',[]),'pagelist':pagelist,'nowpage':nowpage,'pagenum':page,'limit':limit,'nowdate':date,'perdate':perdate,'afterdate':afterdate})
        memcache_set('date'+date+'page'+str(page)+'limit'+str(limit),html,3600*5*page)
        self.flashhtml(html)
        return
Пример #8
0
def skin0(self,html):
#    haha=[]
    '''
    <div class='list-text' id='listText-242377'>

    <a href='###' class='list-pic' mark='242377' id='list-pic-242377' path='2012/01/18/' pic_name='242377_cc5fb6ff525c05fb833d0d973f344da5_1326872875.jpg'>
            <img src='http://image.haha.mx/2012/01/18/small/242377_cc5fb6ff525c05fb833d0d973f344da5_1326872875.jpg' onerror='this.onerror=null;this.src="http://static.haha.mx/images/img-error.jpg"'/>
        </a>
    '''
    defaultDate=DefaultDate.get_by_key_name('date')
    #haha=re.findall('(?i)<div class=\'list-text\' id=\'listText-(\d+)\'[^>]*>(.*?)</div>',html)
    #hahaimg=re.findall('(?i)<a [^>]*mark=\'(\d+)\'[^>]*>[^<]*?<img src=\'(.*?)\'[^>]*>[^<]*</a>',html)
    haha=re.findall('(?i)<p class=\"block joke-item\" id=\"joke-(\d+)\"[^>]*>(.*?)</p>',html)
    hahaimg=re.findall('(?i)<a [^>]*id=\"thumbnail-(\d+)\"[^>]*>[^<]*?<img src=\"(.*?)\"[^>]*>',html)
    imgmap={}
    num=0
    for i,src in hahaimg:
        imgmap[i]=src.replace('/small/','/big/')
    for idn,txt in haha:
        if idn not in self.jokeset:
            self.jokeset.add(idn)
            joke= NewJoke.get_by_key_name('j'+idn)
            if not joke:
                joke=NewJoke(key_name='j'+idn)
                joke.date=defaultDate.date
                num+1
#            joke.joke= re.sub('(?i)<[/]{0,1}[\w]{1,5} [^>]*>','',re.sub('(?i)<a [^>]*>[^<]*</a>','',html_parser.unescape(txt)))
            joke.joke= re.findall('(?i)<p [^>]*>(.*?)</p>',html_parser.unescape(txt))[0]
            if imgmap.has_key(idn):
                joke.img=imgmap[idn]
                joke.type=2
            else:
                joke.type=3
            joke.put()

#    logging.info(str(i))
#                self.jokelist.append({'id':idn,'txt':txt,'img':imgmap[idn]})
#            else:
#                self.jokelist.append({'id':idn,'txt':txt})
    return haha,imgmap
Пример #9
0
    def get(self,limit=10,pagenum=1):
        limit=int(limit)
        pagenum=int(pagenum)
        if pagenum==1 and( not self.request.referer or self.request.referer[0:len(self.request.host_url)]!=self.request.host_url):
            refer=True
        else:
            refer=False
#            logging.info(str(self.request.referer))
        tmppagenum=0
        if pagenum==1:
            Cookies = {}  # tempBook Cookies
            Cookies['request_cookie_list'] = [{'key': cookie_key, 'value': cookie_value} for cookie_key, cookie_value in self.request.cookies.iteritems()]
            for c in Cookies['request_cookie_list']:
                if c['key']=='pagenum':
                    if c.has_key('value') and c['value']:
                        tmppagenum=int(c['value'])
            if not tmppagenum :
                refer=False
        tmp=self.request.get('tmp')
        if tmp and tmppagenum>0:
            pagenum=tmppagenum
        hahalist=memcache.get(str(limit)+'p'+str(pagenum))
        if not hahalist:
            hahalist=NewJoke.all().order('-updateTime').fetch(limit,limit*(pagenum-1))
            memcache.set(str(limit)+'p'+str(pagenum),hahalist,7200)
        if hahalist:
            nowpagestr=hahalist[-1].key().name()
            nowpagestrp=hahalist[0].key().name()
        else:
            nowpagestr='j'
            nowpagestrp='j'
        nowpage='/%s/%s/%s/%s'%(limit,pagenum,pagenum,nowpagestr)
        pagelist=memcache.get(nowpage)
        if not pagelist:
            pagelist=[]
            for i in range(max(1,pagenum-2),max(1,pagenum-2)+7):
                if pagenum>=i:
                    pagelist.append(('/%s/%s/%s/%s'%(limit,i,pagenum,nowpagestr),i))
                else:
                    pagelist.append(('/%s/%s/%s/%s'%(limit,i,pagenum,nowpagestrp),i))
            memcache.set(nowpage,pagelist,72000)
        if pagenum>1:
            setCookie='pagenum=%s;'%(pagenum,)
            self.response.headers.add_header('Set-Cookie', str(setCookie)+'Max-Age = 36000;path=/;')
        self.render('templates/result.html',{'refer':refer,'hahalist':hahalist,'per':'/%s/%s/%s/%s'%(limit,max(1,pagenum-1),pagenum,nowpagestr),'next':'/%s/%s/%s/%s'%(limit,max(1,pagenum+1),pagenum,nowpagestrp),'pagelist':pagelist,'nowpage':nowpage,'pagenum':pagenum})
Пример #10
0
    def get(self,limit=20,pagenum=1,nowpage=1,jokeid='j'):
        if int(limit)!=20:
            return
        html=memcache.get(str(limit)+'page'+str(pagenum))
        if html:
            return self.flashhtml(html)
        limit=int(limit)
        pagenum=int(pagenum)
        nowpage=int(nowpage)
        nowjoke=NewJoke.get_by_key_name(jokeid)
        if not nowjoke:
            pagenum=1
            nowpage=1
        if pagenum==1 and( not self.request.referer or self.request.referer[0:len(self.request.host_url)]!=self.request.host_url):
            refer=True
        else:
            refer=False
        tmppagenum=0
        if pagenum==1:
            Cookies = {}  # tempBook Cookies
            Cookies['request_cookie_list'] = [{'key': cookie_key, 'value': cookie_value} for cookie_key, cookie_value in self.request.cookies.iteritems()]
            for c in Cookies['request_cookie_list']:
                if c['key']=='pagenum':
                    if c.has_key('value') and c['value']:
                        tmppagenum=int(c['value'])
            if not tmppagenum :
                refer=False
        tmp=self.request.get('tmp')
        if tmp and tmppagenum>0:
            pagenum=tmppagenum
        hahalist=memcache.get(str(limit)+'p'+str(pagenum))
        if not hahalist:
            hahalist=NewJoke.all()
            if pagenum>=nowpage:
                if nowjoke:
                    hahalist=hahalist.filter('updateTime <',nowjoke.updateTime)
                hahalist=hahalist.order('-updateTime').fetch(limit,limit*(pagenum-nowpage))
            else:
                if nowjoke:
                    hahalist=hahalist.filter('updateTime >',nowjoke.updateTime)
                hahalist=hahalist.order('updateTime').fetch(limit,limit*(nowpage-pagenum))
                hahalist.reverse()
            memcache.set(str(limit)+'p'+str(pagenum),hahalist,7200)

        if hahalist:
            nowpagestr=hahalist[-1].key().name()
            nowpagestrp=hahalist[0].key().name()
        else:
            nowpagestr='j'
            nowpagestrp='j'
        nowpage='/%s/%s/%s/%s'%(limit,pagenum,pagenum,nowpagestr)
        pagelist=memcache.get(nowpage)
        if not pagelist:
            pagelist=[]
            for i in range(max(1,pagenum-2),max(1,pagenum-2)+7):
                if pagenum>=i:
                    pagelist.append(('/%s/%s/%s/%s'%(limit,i,pagenum,nowpagestr),i))
                else:
                    pagelist.append(('/%s/%s/%s/%s'%(limit,i,pagenum,nowpagestrp),i))
            memcache.set(nowpage,pagelist,72000)
        if pagenum>1:
            setCookie='pagenum=%s;'%(pagenum,)
            self.response.headers.add_header('Set-Cookie', str(setCookie)+'Max-Age = 36000;path=/;')
        html=self.obj2str('templates/result.html',{'refer':refer,'hahalist':hahalist,'per':'/%s/%s/%s/%s'%(limit,max(1,pagenum-1),pagenum,nowpagestr),'next':'/%s/%s/%s/%s'%(limit,max(1,pagenum+1),pagenum,nowpagestrp),'pagelist':pagelist,'nowpage':nowpage,'pagenum':pagenum})
        memcache.set(str(limit)+'page'+str(pagenum),html,7200)
        self.flashhtml(html)