46 lines
1.1 KiB
Python
46 lines
1.1 KiB
Python
# -*- coding: utf-8 -*-
|
|
"""
|
|
|
|
"""
|
|
from __future__ import unicode_literals
|
|
from pelican import contents
|
|
from pelican.contents import Content
|
|
|
|
class Comment(Content):
|
|
mandatory_properties = ('author', 'date')
|
|
default_template = 'None'
|
|
|
|
def __init__(self, id, avatar, content, metadata, settings, source_path, context):
|
|
super(Comment,self).__init__( content, metadata, settings, source_path, context )
|
|
self.id = id
|
|
self.replies = []
|
|
self.avatar = avatar
|
|
self.title = "Posted by: " + str(metadata['author'])
|
|
|
|
def addReply(self, comment):
|
|
self.replies.append(comment)
|
|
|
|
def getReply(self, id):
|
|
for reply in self.replies:
|
|
if reply.id == id:
|
|
return reply
|
|
else:
|
|
deepReply = reply.getReply(id)
|
|
if deepReply != None:
|
|
return deepReply
|
|
return None
|
|
|
|
def __lt__(self, other):
|
|
return self.metadata['date'] < other.metadata['date']
|
|
|
|
def sortReplies(self):
|
|
for r in self.replies:
|
|
r.sortReplies()
|
|
self.replies = sorted(self.replies)
|
|
|
|
def countReplies(self):
|
|
amount = 0
|
|
for r in self.replies:
|
|
amount += r.countReplies()
|
|
return amount + len(self.replies)
|