From a16dd46874cc419919115bda5328dc9d27c51272 Mon Sep 17 00:00:00 2001 From: XANTRONIX Development Date: Sat, 9 Nov 2024 13:32:01 -0500 Subject: [PATCH] Implement thawing Message from database --- lib/nntp/tiny/db.py | 5 +++++ lib/nntp/tiny/message.py | 7 +++++++ 2 files changed, 12 insertions(+) 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,