def post(self, id='', title=''): action = self.get_argument("act") if action == 'inputpw': wrn = self.get_cookie("wrpw", '0') if int(wrn) >= 10: self.write('403') return pw = self.get_argument("pw", '') pobj = Article.get_article_by_id_simple(id) wr = False if pw: if pobj.password == pw: self.set_cookie("rp%s" % id, pobj.password, path="/", expires_days=1) else: wr = True else: wr = True if wr: wrn = self.get_cookie("wrpw", '0') self.set_cookie("wrpw", str(int(wrn) + 1), path="/", expires_days=1) self.redirect('%s/topic/%d/%s' % (BASE_URL, pobj.id, pobj.title)) return self.set_header('Content-Type', 'application/json') rspd = {'status': 201, 'msg': 'ok'} if action == 'readmorecomment': fromid = self.get_argument("fromid", '') allnum = int(self.get_argument("allnum", 0)) showednum = int( self.get_argument("showednum", EACH_PAGE_COMMENT_NUM)) if fromid: rspd['status'] = 200 if (allnum - showednum) >= EACH_PAGE_COMMENT_NUM: limit = EACH_PAGE_COMMENT_NUM else: limit = allnum - showednum cobjs = Comment.get_post_page_comments_by_id(id, fromid, limit) rspd['commentstr'] = self.render('comments.html', {'cobjs': cobjs}) rspd['lavenum'] = allnum - showednum - limit self.write(json.dumps(rspd)) return # usercomnum = self.get_cookie('usercomnum', '0') if int(usercomnum) > MAX_COMMENT_NUM_A_DAY: rspd = {'status': 403, 'msg': '403: Forbidden'} self.write(json.dumps(rspd)) return try: timestamp = int(time()) post_dic = { 'author': self.get_argument("author"), 'email': self.get_argument("email"), 'content': safe_encode(self.get_argument("con").replace('\r', '\n')), 'url': self.get_argument("url", ''), 'postid': self.get_argument("postid"), 'add_time': timestamp, 'toid': self.get_argument("toid", ''), 'visible': COMMENT_DEFAULT_VISIBLE } except: rspd['status'] = 500 rspd['msg'] = '错误: 注意必填的三项' self.write(json.dumps(rspd)) return pobj = Article.get_article_by_id_simple(id) if pobj and not pobj.closecomment: cobjid = Comment.add_new_comment(post_dic) if cobjid: Article.update_post_comment(pobj.comment_num + 1, id) rspd['status'] = 200 #rspd['msg'] = '恭喜: 已成功提交评论' rspd['msg'] = self.render( 'comment.html', { 'cobjid': cobjid, 'gravatar': 'http://www.gravatar.com/avatar/%s' % md5(post_dic['email']).hexdigest(), 'url': post_dic['url'], 'author': post_dic['author'], 'visible': post_dic['visible'], 'content': post_dic['content'], }) clear_cache_by_pathlist(['/', 'post:%s' % id]) #send mail if not debug: try: if NOTICE_MAIL: tolist = [NOTICE_MAIL] else: tolist = [] if post_dic['toid']: tcomment = Comment.get_comment_by_id(toid) if tcomment and tcomment.email: tolist.append(tcomment.email) commenturl = "%s/t/%s#r%s" % (BASE_URL, str( pobj.id), str(cobjid)) m_subject = u'有人回复您在 《%s》 里的评论 %s' % (pobj.title, str(cobjid)) m_html = u'这是一封提醒邮件(请勿直接回复): %s ,请尽快处理: %s' % ( m_subject, commenturl) if tolist: import sae.mail sae.mail.send_mail( ','.join(tolist), m_subject, m_html, (MAIL_SMTP, int(MAIL_PORT), MAIL_FROM, MAIL_PASSWORD, True)) except: pass else: rspd['msg'] = '错误: 未知错误' else: rspd['msg'] = '错误: 未知错误' self.write(json.dumps(rspd))
def post(self, id = '', title = ''): action = self.get_argument("act") if action == 'inputpw': wrn = self.get_cookie("wrpw", '0') if int(wrn)>=10: self.write('403') return pw = self.get_argument("pw",'') pobj = Article.get_article_by_id_simple(id) wr = False if pw: if pobj.password == pw: self.set_cookie("rp%s" % id, pobj.password, path = "/", expires_days =1) else: wr = True else: wr = True if wr: wrn = self.get_cookie("wrpw", '0') self.set_cookie("wrpw", str(int(wrn)+1), path = "/", expires_days = 1 ) self.redirect('%s/topic/%d/%s'% (BASE_URL, pobj.id, pobj.title)) return self.set_header('Content-Type','application/json') rspd = {'status': 201, 'msg':'ok'} if action == 'readmorecomment': fromid = self.get_argument("fromid",'') allnum = int(self.get_argument("allnum",0)) showednum = int(self.get_argument("showednum", EACH_PAGE_COMMENT_NUM)) if fromid: rspd['status'] = 200 if (allnum - showednum) >= EACH_PAGE_COMMENT_NUM: limit = EACH_PAGE_COMMENT_NUM else: limit = allnum - showednum cobjs = Comment.get_post_page_comments_by_id( id, fromid, limit ) rspd['commentstr'] = self.render('comments.html', {'cobjs': cobjs}) rspd['lavenum'] = allnum - showednum - limit self.write(json.dumps(rspd)) return # usercomnum = self.get_cookie('usercomnum','0') if int(usercomnum) > MAX_COMMENT_NUM_A_DAY: rspd = {'status': 403, 'msg':'403: Forbidden'} self.write(json.dumps(rspd)) return try: timestamp = int(time()) post_dic = { 'author': self.get_argument("author"), 'email': self.get_argument("email"), 'content': safe_encode(self.get_argument("con").replace('\r','\n')), 'url': self.get_argument("url",''), 'postid': self.get_argument("postid"), 'add_time': timestamp, 'toid': self.get_argument("toid",''), 'visible': COMMENT_DEFAULT_VISIBLE } except: rspd['status'] = 500 rspd['msg'] = '错误: 注意必填的三项' self.write(json.dumps(rspd)) return pobj = Article.get_article_by_id_simple(id) if pobj and not pobj.closecomment: cobjid = Comment.add_new_comment(post_dic) if cobjid: Article.update_post_comment( pobj.comment_num+1, id) rspd['status'] = 200 #rspd['msg'] = '恭喜: 已成功提交评论' rspd['msg'] = self.render('comment.html', { 'cobjid': cobjid, 'gravatar': 'http://www.gravatar.com/avatar/%s'%md5(post_dic['email']).hexdigest(), 'url': post_dic['url'], 'author': post_dic['author'], 'visible': post_dic['visible'], 'content': post_dic['content'], }) clear_cache_by_pathlist(['/','post:%s'%id]) #send mail if not debug: try: if NOTICE_MAIL: tolist = [NOTICE_MAIL] else: tolist = [] if post_dic['toid']: tcomment = Comment.get_comment_by_id(toid) if tcomment and tcomment.email: tolist.append(tcomment.email) commenturl = "%s/t/%s#r%s" % (BASE_URL, str(pobj.id), str(cobjid)) m_subject = u'有人回复您在 《%s》 里的评论 %s' % ( pobj.title,str(cobjid)) m_html = u'这是一封提醒邮件(请勿直接回复): %s ,请尽快处理: %s' % (m_subject, commenturl) if tolist: import sae.mail sae.mail.send_mail(','.join(tolist), m_subject, m_html,(MAIL_SMTP, int(MAIL_PORT), MAIL_FROM, MAIL_PASSWORD, True)) except: pass else: rspd['msg'] = '错误: 未知错误' else: rspd['msg'] = '错误: 未知错误' self.write(json.dumps(rspd))
pcomment_num = int(pobj['comment_num']) pobjid = pobj['id'] pobjtitle = pobj['title'] else: pclosecomment = pobj.closecomment pcomment_num = pobj.comment_num pobjid = pobj.id pobjtitle = pobj.title try: pclosecomment = int(pclosecomment) except Exception , e: print 'PostDetail, pclosecomment=',pclosecomment,e if pobj and not pclosecomment: cobjid = Comment.add_new_comment(post_dic) if cobjid: Article.update_post_comment( int(pcomment_num)+1, id) rspd['status'] = 200 #rspd['msg'] = '恭喜: 已成功提交评论' if GRAVATAR_SUPPORT: gravatar = 'http://www.gravatar.com/avatar/%s'%md5(post_dic['email']).hexdigest() else: gravatar = '' rspd['msg'] = self.render('comment.html', { 'cobjid': cobjid, 'gravatar': gravatar, 'url': post_dic['url'], 'author': post_dic['author'], 'visible': post_dic['visible'],
pcomment_num = int(pobj['comment_num']) pobjid = pobj['id'] pobjtitle = pobj['title'] else: pclosecomment = pobj.closecomment pcomment_num = pobj.comment_num pobjid = pobj.id pobjtitle = pobj.title try: pclosecomment = int(pclosecomment) except Exception, e: print 'PostDetail, pclosecomment=', pclosecomment, e if pobj and not pclosecomment: cobjid = Comment.add_new_comment(post_dic) if cobjid: Article.update_post_comment(int(pcomment_num) + 1, id) rspd['status'] = 200 #rspd['msg'] = '恭喜: 已成功提交评论' if GRAVATAR_SUPPORT: gravatar = 'http://www.gravatar.com/avatar/%s' % md5( post_dic['email']).hexdigest() else: gravatar = '' rspd['msg'] = self.render( 'comment.html', { 'cobjid': cobjid, 'gravatar': gravatar, 'url': post_dic['url'],