Exemple #1
0
 def post(self, post_id):
     user = self.current_user
     post_id = int(post_id)
     post = db.query(Post).get(post_id)
     if not post:
         raise tornado.web.HTTPError(404)
     else:
         origin_content = self.get_argument("comment-content", "")
         content = md(origin_content)
         if origin_content == "":
             self.redirect(self.next_url)
             return
         comment = Comment(post_id=post_id, user_id=user.id, content=content, origin_content=origin_content)
         db.add(comment)
         db.commit()
         the_comment = (
             db.query(Comment).order_by(sa.desc(Comment.created_at)).filter(Comment.user_id == user.id).first()
         )
         if self.is_ajax():
             self.write(
                 tornado.escape.json_encode(
                     {
                         "username": user.name,
                         "avatar": user.get_avatar(size=24),
                         "time": formatDate(int(time.time())),
                         "content": content,
                     }
                 )
             )
         if post.user_id != user.id:
             db.add(Notifier(post_id=post_id, who_id=user.id, whom_id=post.user_id, comment_id=the_comment.id))
             db.commit()
         if content.find("@") != -1:
             put_notifier(comment=comment, post=post)
Exemple #2
0
 def post(self):
     if not self.has_permission:
         return
     page = int(self.get_argument('page', 1))
     topic_id = int(self.get_argument('topic_id', 0))
     topic = Topic.get(id=topic_id)
     if not topic_id:
         result = {'status': 'error', 'message': '无此主题,不能创建评论'}
         if self.is_ajax:
             return self.write(result)
         else:
             self.flash_message(result)
             return self.redirect_next_url()
     user = self.current_user
     form = ReplyForm(self.request.arguments)
     if form.validate():
         reply = form.save(user=user, topic=topic)
         if 'class="mention"' in reply.content:
             put_notifier(reply)
         result = {
             'status': 'success',
             'message': '评论创建成功',
             'content': reply.content,
             'name': reply.author.name,
             'nickname': reply.author.nickname,
             'author_avatar': reply.author.get_avatar(size=48),
             'author_url': reply.author.url,
             'author_name': reply.author.name,
             'author_nickname': reply.author.nickname,
             'reply_url': reply.url,
             'created': reply.created,
             'id': reply.id,
             'floor': reply.floor
         }
         if self.is_ajax:
             return self.write(result)
         self.flash_message(result)
         return self.redirect(topic.url)
     if self.is_ajax:
         return self.write(form.result)
     self.flash_message(form.result)
     return self.render("topic/index.html",
                        form=form,
                        topic=topic,
                        category='index',
                        page=page)
Exemple #3
0
 def post(self):
     if not self.has_permission:
         return
     page = int(self.get_argument("page", 1))
     topic_id = int(self.get_argument("topic_id", 0))
     topic = Topic.get(id=topic_id)
     if not topic_id:
         result = {"status": "error", "message": "无此主题,不能创建评论"}
         if self.is_ajax:
             return self.write(result)
         else:
             self.flash_message(result)
             return self.redirect_next_url()
     user = self.current_user
     form = ReplyForm(self.request.arguments)
     if form.validate():
         reply = form.save(user=user, topic=topic)
         if 'class="mention"' in reply.content:
             put_notifier(reply)
         result = {
             "status": "success",
             "message": "评论创建成功",
             "content": reply.content,
             "name": reply.author.name,
             "nickname": reply.author.nickname,
             "author_avatar": reply.author.get_avatar(size=48),
             "author_url": reply.author.url,
             "author_name": reply.author.name,
             "author_nickname": reply.author.nickname,
             "reply_url": reply.url,
             "created": reply.created,
             "id": reply.id,
             "floor": reply.floor,
         }
         if self.is_ajax:
             return self.write(result)
         self.flash_message(result)
         return self.redirect(topic.url)
     if self.is_ajax:
         return self.write(form.result)
     self.flash_message(form.result)
     return self.render("topic/index.html", form=form, topic=topic, category="index", page=page)
Exemple #4
0
 def post(self, post_id):
     user = self.current_user
     post_id = int(post_id)
     post = db.query(Post).get(post_id)
     if not post:
         raise tornado.web.HTTPError(404)
     else:
         origin_content = self.get_argument("comment-content", '')
         content = md(origin_content)
         if origin_content == '':
             self.redirect(self.next_url)
             return
         comment = Comment(post_id=post_id,
                           user_id=user.id,
                           content=content,
                           origin_content=origin_content)
         db.add(comment)
         db.commit()
         the_comment = db.query(Comment).order_by(
             sa.desc(Comment.created_at)).filter(
                 Comment.user_id == user.id).first()
         if self.is_ajax():
             self.write(
                 tornado.escape.json_encode({
                     'username':
                     user.name,
                     'avatar':
                     user.get_avatar(size=24),
                     'time':
                     formatDate(int(time.time())),
                     'content':
                     content
                 }))
         if post.user_id != user.id:
             db.add(
                 Notifier(post_id=post_id,
                          who_id=user.id,
                          whom_id=post.user_id,
                          comment_id=the_comment.id))
             db.commit()
         if content.find('@') != -1:
             put_notifier(comment=comment, post=post)
Exemple #5
0
 def post(self):
     if not self.has_permission:
         return
     page = int(self.get_argument('page', 1))
     topic_id = int(self.get_argument('topic_id', 0))
     topic = Topic.get(id=topic_id)
     if not topic_id:
         result = {'status': 'error', 'message':
             '无此主题,不能创建评论'}
         if self.is_ajax:
             return self.write(result)
         else:
             self.flash_message(result)
             return self.redirect_next_url()
     user = self.current_user
     form = ReplyForm(self.request.arguments)
     if form.validate():
         reply = form.save(user=user, topic=topic)
         if 'class="mention"' in reply.content:
             put_notifier(reply)
         result = {'status': 'success', 'message': '评论创建成功',
                 'content': reply.content, 'name': reply.author.name,
                 'nickname': reply.author.nickname, 'author_avatar':
                 reply.author.get_avatar(size=48), 'author_url':
                 reply.author.url, 'author_name': reply.author.name,
                 'author_nickname': reply.author.nickname,
                 'reply_url': reply.url, 'created': reply.created,
                 'id': reply.id, 'floor': reply.floor}
         if self.is_ajax:
             return self.write(result)
         self.flash_message(result)
         return self.redirect(topic.url)
     if self.is_ajax:
         return self.write(form.result)
     self.flash_message(form.result)
     return self.render("topic/index.html", form=form, topic=topic,
             category='index', page=page)