add mode for comments (normal, pending, deleted)

This commit is contained in:
posativ 2012-10-16 19:42:51 +02:00
parent 54548d4bd5
commit 3bb830e86c
2 changed files with 29 additions and 6 deletions

View File

@ -3,8 +3,18 @@ from werkzeug.wrappers import Response
class Comment(object): class Comment(object):
"""This class represents a regular comment. It needs at least a text
field, all other fields are optional (or automatically set by the
database driver.
fields = ['text', 'author', 'email', 'website', 'id', 'parent', 'timestamp'] The field `mode` has a special meaning:
0: normal
1: in moderation queue
2: deleted
"""
fields = ['text', 'author', 'email', 'website', 'id', 'parent', 'timestamp', 'mode']
def __init__(self, **kw): def __init__(self, **kw):
@ -18,6 +28,15 @@ class Comment(object):
def json(self): def json(self):
return '' return ''
@property
def pending(self):
return self.mode == 1
@property
def deleted(self):
return self.mode == 2
def comment(app, environ, request, path, id=None): def comment(app, environ, request, path, id=None):
return Response('', 200) return Response('', 200)

View File

@ -45,16 +45,18 @@ class SQLite(Abstract):
fields = [ fields = [
'id', 'path', 'timestamp', 'id', 'path', 'timestamp',
'text', 'author', 'email', 'website', 'parent' 'text', 'author', 'email', 'website', 'parent', 'mode'
] ]
def initialize(self, conf): def initialize(self, conf):
self.dbpath = conf['SQLITE'] self.dbpath = conf['SQLITE']
self.mode = 1 if conf.get('MODERATION') else 0
with sqlite3.connect(self.dbpath) as con: with sqlite3.connect(self.dbpath) as con:
sql = ('main.comments (id INTEGER NOT NULL, path VARCHAR(255) NOT NULL,' sql = ('main.comments (id INTEGER NOT NULL, path VARCHAR(255) NOT NULL,'
'timestamp FLOAT NOT NULL, text VARCHAR, author VARCHAR(64),' 'timestamp FLOAT NOT NULL, text VARCHAR, author VARCHAR(64),'
'email VARCHAR(64), website VARCHAR(64), parent INTEGER,' 'email VARCHAR(64), website VARCHAR(64), parent INTEGER, mode INTEGER,'
'PRIMARY KEY (id, path))') 'PRIMARY KEY (id, path))')
con.execute("CREATE TABLE IF NOT EXISTS %s;" % sql) con.execute("CREATE TABLE IF NOT EXISTS %s;" % sql)
@ -73,15 +75,17 @@ class SQLite(Abstract):
def query2comment(self, query): def query2comment(self, query):
return Comment( return Comment(
text=query[3], author=query[4], email=query[5], website=query[6], text=query[3], author=query[4], email=query[5], website=query[6],
parent=query[7], timestamp=query[2], id=query[0] parent=query[7], timestamp=query[2], id=query[0], mode=query[8]
) )
def add(self, path, c): def add(self, path, c):
with sqlite3.connect(self.dbpath) as con: with sqlite3.connect(self.dbpath) as con:
keys = ','.join(self.fields) keys = ','.join(self.fields)
values = ','.join('?'*len(self.fields)) values = ','.join('?'*len(self.fields))
con.execute('INSERT INTO comments (%s) VALUES (%s);' % (keys, values), con.execute('INSERT INTO comments (%s) VALUES (%s);' % (keys, values), (
(0, path, time.time(), c.text, c.author, c.email, c.website, c.parent)) 0, path, time.time(), c.text, c.author, c.email, c.website,
c.parent, self.mode)
)
def update(self, path, comment): def update(self, path, comment):
return return