comment.py 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. # -*- coding: utf-8 -*-
  2. """
  3. Author: Bernhard Scheirle
  4. """
  5. from __future__ import unicode_literals
  6. from pelican import contents
  7. from pelican.contents import Content
  8. class Comment(Content):
  9. mandatory_properties = ('author', 'date')
  10. default_template = 'None'
  11. def __init__(self, id, avatar, content, metadata, settings, source_path, context):
  12. super(Comment,self).__init__( content, metadata, settings, source_path, context )
  13. self.id = id
  14. self.replies = []
  15. self.avatar = avatar
  16. self.title = "Posted by: {}".format(metadata['author'])
  17. def addReply(self, comment):
  18. self.replies.append(comment)
  19. def getReply(self, id):
  20. for reply in self.replies:
  21. if reply.id == id:
  22. return reply
  23. else:
  24. deepReply = reply.getReply(id)
  25. if deepReply != None:
  26. return deepReply
  27. return None
  28. def __lt__(self, other):
  29. return self.metadata['date'] < other.metadata['date']
  30. def sortReplies(self):
  31. for r in self.replies:
  32. r.sortReplies()
  33. self.replies = sorted(self.replies)
  34. def countReplies(self):
  35. amount = 0
  36. for r in self.replies:
  37. amount += r.countReplies()
  38. return amount + len(self.replies)