Example #1
0
    def post(self, id=''):
        act = self.get_argument("act", '')
        if act == 'findid':
            eid = self.get_argument("id", '')
            self.redirect('%s/admin/comment/%s' % (BASE_URL, eid))
            return

        tf = {'true': 1, 'false': 0}
        post_dic = {
            'author':
            self.get_argument("author"),
            'email':
            self.get_argument("email", ''),
            'content':
            safe_encode(self.get_argument("content").replace('\r', '\n')),
            'url':
            self.get_argument("url", ''),
            'visible':
            self.get_argument("visible", 'false'),
            'id':
            id
        }
        post_dic['visible'] = tf[post_dic['visible'].lower()]

        if MYSQL_TO_KVDB_SUPPORT:
            obj = Comment.get_comment_by_id(id)
            for k, v in obj.items():
                if k not in post_dic:
                    post_dic[k] = v

        Comment.update_comment_edit(post_dic)
        clear_cache_by_pathlist(['post:%s' % id])
        self.redirect('%s/admin/comment/%s' % (BASE_URL, id))
        return
Example #2
0
    def post(self, id=""):
        act = self.get_argument("act", "")
        if act == "findid":
            eid = self.get_argument("id", "")
            self.redirect("%s/admin/comment/%s" % (BASE_URL, eid))
            return

        tf = {"true": 1, "false": 0}
        post_dic = {
            "author": self.get_argument("author"),
            "email": self.get_argument("email", ""),
            "content": safe_encode(self.get_argument("content").replace("\r", "\n")),
            "url": self.get_argument("url", ""),
            "visible": self.get_argument("visible", "false"),
            "id": id,
        }
        post_dic["visible"] = tf[post_dic["visible"].lower()]

        if MYSQL_TO_KVDB_SUPPORT:
            obj = Comment.get_comment_by_id(id)
            for k, v in obj.items():
                if k not in post_dic:
                    post_dic[k] = v

        Comment.update_comment_edit(post_dic)
        clear_cache_by_pathlist(["post:%s" % id])
        self.redirect("%s/admin/comment/%s" % (BASE_URL, id))
        return
Example #3
0
 def get(self, id = ''):
     obj = None
     if id:
         obj = Comment.get_comment_by_id(id)
         if obj:
             act = self.get_argument("act",'')
             if act == 'del':
                 Comment.del_comment_by_id(id)
                 clear_cache_by_pathlist(['post:%d'%obj.postid])
                 self.redirect('%s/admin/comment/'% (BASE_URL))
                 return
     self.echo('admin_comment.html', {
         'title': "管理评论",
         'cats': Category.get_all_cat_name(),
         'tags': Tag.get_all_tag_name(),
         'obj': obj,
         'comments': Comment.get_recent_comments(),
     },layout='_layout_admin.html')        
Example #4
0
 def get(self, id = ''):
     obj = None
     if id:
         obj = Comment.get_comment_by_id(id)
         if obj:
             act = self.get_argument("act",'')
             if act == 'del':
                 Comment.del_comment_by_id(id)
                 clear_cache_by_pathlist(['post:%d'%obj.postid])
                 self.redirect('%s/admin/comment/'% (BASE_URL))
                 return
     self.echo('admin_comment.html', {
         'title': "管理评论",
         'cats': Category.get_all_cat_name(),
         'tags': Tag.get_all_tag_name(),
         'obj': obj,
         'comments': Comment.get_recent_comments(),
     },layout='_layout_admin.html')
Example #5
0
 def get(self, id=""):
     obj = None
     if id:
         obj = Comment.get_comment_by_id(id)
         if obj:
             act = self.get_argument("act", "")
             if act == "del":
                 Comment.del_comment_by_id(id)
                 if MYSQL_TO_KVDB_SUPPORT:
                     clear_cache_by_pathlist(["post:%d" % obj["postid"]])
                 else:
                     clear_cache_by_pathlist(["post:%d" % obj.postid])
                 self.redirect("%s/admin/comment/" % (BASE_URL))
                 return
     self.echo(
         "admin_comment.html",
         {"title": "管理评论", "obj": obj, "comments": Comment.get_recent_comments(ADMIN_RECENT_COMMENT_NUM)},
         layout="_layout_admin.html",
     )
Example #6
0
 def get(self, id=""):
     obj = None
     if id:
         obj = Comment.get_comment_by_id(id)
         if obj:
             act = self.get_argument("act", "")
             if act == "del":
                 Comment.del_comment_by_id(id)
                 clear_cache_by_pathlist(["post:%d" % obj.postid])
                 self.redirect("%s/admin/comment/" % (BASE_URL))
                 return
     self.echo(
         "admin_comment.html",
         {
             "title": "管理评论",
             "cats": Category.get_all_cat_name(),
             "tags": Tag.get_all_tag_name(),
             "obj": obj,
             "comments": Comment.get_recent_comments(),
         },
         layout="_layout_admin.html",
     )
Example #7
0
 def get(self, id=''):
     obj = None
     if id:
         obj = Comment.get_comment_by_id(id)
         if obj:
             act = self.get_argument("act", '')
             if act == 'del':
                 Comment.del_comment_by_id(id)
                 if MYSQL_TO_KVDB_SUPPORT:
                     clear_cache_by_pathlist(
                         ['post:%d' % int(obj['postid'])])
                 else:
                     clear_cache_by_pathlist(['post:%d' % int(obj.postid)])
                 self.redirect('%s/admin/comment/' % (BASE_URL))
                 return
     self.echo(
         'admin_comment.html', {
             'title': "管理评论",
             'obj': obj,
             'comments':
             Comment.get_recent_comments(ADMIN_RECENT_COMMENT_NUM),
         },
         layout='_layout_admin.html')
Example #8
0
    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))
Example #9
0
                        'visible': post_dic['visible'],
                        'content': post_dic['content'],
                    })

                clear_cache_by_pathlist(['/','post:%s'%id])
                #send mail
                if not debug:
                    try:
                        if getAttr('NOTICE_MAIL'):
                            tolist = [getAttr('NOTICE_MAIL')]
                        else:
                            tolist = []
                        if tolist:
                            import sae.mail
                            if 'toid' in post_dic:
                                tcomment = Comment.get_comment_by_id(post_dic['toid'])
                                if MYSQL_TO_KVDB_SUPPORT:
                                    if tcomment and tcomment['email']:
                                        tolist.append(tcomment['email'])
                                else:
                                    if tcomment and tcomment.email:
                                        tolist.append(tcomment.email)
                            commenturl = "%s/t/%s#r%s" % (BASE_URL, str(pobjid), str(cobjid))
                            m_subject = u'有人回复您在 《%s》 里的评论 %s' % ( pobjtitle,str(cobjid))
                            m_html = u'这是一封提醒邮件(请勿直接回复): %s ,请尽快处理: %s' % (m_subject, commenturl)
                            sae.mail.send_mail(','.join(tolist), m_subject, m_html,(getAttr('MAIL_SMTP'), int(getAttr('MAIL_PORT')), getAttr('MAIL_FROM'), getAttr('MAIL_PASSWORD'), True))
                    except Exception , e:
                        print 'PostDetail()222',e
                        #rspd['msg'] = '错误: 未知错误'
                #else:
                #    rspd['msg'] = '错误: 未知错误'
Example #10
0
 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))
Example #11
0
                        'visible': post_dic['visible'],
                        'content': post_dic['content'],
                    })

                clear_cache_by_pathlist(['/', 'post:%s' % id])
                #send mail
                if not debug:
                    try:
                        if getAttr('NOTICE_MAIL'):
                            tolist = [getAttr('NOTICE_MAIL')]
                        else:
                            tolist = []
                        if tolist:
                            import sae.mail
                            if 'toid' in post_dic:
                                tcomment = Comment.get_comment_by_id(
                                    post_dic['toid'])
                                if MYSQL_TO_KVDB_SUPPORT:
                                    if tcomment and tcomment['email']:
                                        tolist.append(tcomment['email'])
                                else:
                                    if tcomment and tcomment.email:
                                        tolist.append(tcomment.email)
                            commenturl = "%s/t/%s#r%s" % (
                                BASE_URL, str(pobjid), str(cobjid))
                            m_subject = u'有人回复您在 《%s》 里的评论 %s' % (pobjtitle,
                                                                  str(cobjid))
                            m_html = u'这是一封提醒邮件(请勿直接回复): %s ,请尽快处理: %s' % (
                                m_subject, commenturl)
                            sae.mail.send_mail(
                                ','.join(tolist), m_subject,
                                m_html, (getAttr('MAIL_SMTP'),