1
0

comment.py 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. from collections import namedtuple
  2. from sql.comment import read_comment_list, create_comment, get_user_comment_count, delete_comment, read_comment
  3. import object.user
  4. import object.blog
  5. def load_comment_list(blog_id: int):
  6. ret = []
  7. for i in read_comment_list(blog_id):
  8. ret.append(Comment(i))
  9. return ret
  10. class _Comment:
  11. comment_tuple = namedtuple("Comment", "blog email content update_time")
  12. @staticmethod
  13. def get_user_comment_count(auth: "object.user"):
  14. return get_user_comment_count(auth.id)
  15. @staticmethod
  16. def create(blog: "object.blog.BlogArticle", auth: "object.user.User", content):
  17. return create_comment(blog.id, auth.id, content)
  18. class Comment(_Comment):
  19. def __init__(self, comment_id):
  20. self.id = comment_id
  21. @property
  22. def info(self):
  23. return Comment.comment_tuple(*read_comment(self.id))
  24. @property
  25. def blog(self):
  26. return object.blog.BlogArticle(self.info.blog)
  27. @property
  28. def auth(self):
  29. return object.user.User(self.info.email)
  30. @property
  31. def content(self):
  32. return self.info.content
  33. @property
  34. def update_time(self):
  35. return self.info.update_time
  36. def is_delete(self):
  37. return not self.auth.is_authenticated and self.blog.is_delete and len(self.content) != 0
  38. def delete(self):
  39. return delete_comment(self.id)