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'))
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)
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')
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})
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'未发送微博。')
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))
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
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)