diff --git a/lib/nntp/tiny/db.py b/lib/nntp/tiny/db.py index 4f4896d..4ca423e 100644 --- a/lib/nntp/tiny/db.py +++ b/lib/nntp/tiny/db.py @@ -20,6 +20,11 @@ class DatabaseTableCursor(): return getattr(self.cr, name) def __map__(self, row): + fn = getattr(self.table, '__from_row__', None) + + if fn is not None: + return fn(row) + obj = self.table() for name in self.table.columns: diff --git a/lib/nntp/tiny/message.py b/lib/nntp/tiny/message.py index 401f68c..698c8e8 100644 --- a/lib/nntp/tiny/message.py +++ b/lib/nntp/tiny/message.py @@ -49,6 +49,13 @@ class Message(DatabaseTable): self.body = None self._key = None + @staticmethod + def __from_row__(row): + message = Message() + message.parse(row['content']) + + return message + def __values__(self): return ( self.newsgroup_id,