diff options
| author | Sebastian Spaeth <sebastian@sspaeth.de> | 2010-03-16 17:10:57 +0100 |
|---|---|---|
| committer | Sebastian Spaeth <sebastian@sspaeth.de> | 2010-03-16 17:10:57 +0100 |
| commit | ee66e0f52c9902b9c4f4ce37eb04a89fa4356696 (patch) | |
| tree | 0e03257cd04828f4e45fbc443cf0f22d5a24070c | |
| parent | 7b032b6f87b40c3a4849cf7e889bf7a6975a0a57 (diff) | |
implement Message.get_date() and Message.get_header()
--HG--
extra : transplant_source : %90%E9%A5Z%D1%E6%26%1F%D3%8B%CCsbb%E9%17%FA%5CD%9F
| -rw-r--r-- | cnotmuch/database.py | 42 | ||||
| -rwxr-xr-x | notmuch | 2 |
2 files changed, 40 insertions, 4 deletions
diff --git a/cnotmuch/database.py b/cnotmuch/database.py index 1619e454..8762f393 100644 --- a/cnotmuch/database.py +++ b/cnotmuch/database.py @@ -1,7 +1,8 @@ import ctypes -from ctypes import c_int, c_char_p, c_void_p +from ctypes import c_int, c_char_p, c_void_p, c_uint64 from cnotmuch.globals import nmlib, STATUS, NotmuchError import logging +from datetime import date class Database(object): """ Wrapper around a notmuch_database_t @@ -387,6 +388,12 @@ class Message(object): _get_tags = nmlib.notmuch_message_get_tags _get_tags.restype = c_void_p + _get_date = nmlib.notmuch_message_get_date + _get_date.restype = c_uint64 + + _get_header = nmlib.notmuch_message_get_header + _get_header.restype = c_char_p + def __init__(self, msg_p, parent=None): """ msg_p is a pointer to an notmuch_message_t Structure. If it is None, @@ -413,6 +420,28 @@ class Message(object): raise NotmuchError(STATUS.NOT_INITIALIZED) return Message._get_message_id(self._msg) + def get_date(self): + """returns time_t of the message date + + For the original textual representation of the Date header from the + message call notmuch_message_get_header() with a header value of + "date". + Raises NotmuchError(STATUS.NOT_INITIALIZED) if not inited + """ + if self._msg is None: + raise NotmuchError(STATUS.NOT_INITIALIZED) + return Message._get_date(self._msg) + + def get_header(self, header): + """ TODO document me""" + if self._msg is None: + raise NotmuchError(STATUS.NOT_INITIALIZED) + + #Returns NULL if any error occurs. + header = Message._get_header (self._msg, header) + if header == None: + raise NotmuchError(STATUS.NULL_POINTER) + return header def get_filename(self): """ return the msg filename @@ -439,8 +468,15 @@ class Message(object): def __str__(self): """A message() is represented by a 1-line summary""" - tags = str(self.get_tags()) - return "TODO: FIXME Sebastian Krzyszkowiak <seba.dos1@gmail.com> (2009-08-27) (%s)" % (tags) + msg = {} + msg['from'] = self.get_header('from') + msg['tags'] = str(self.get_tags()) + msg['date'] = date.fromtimestamp(self.get_date()) + return "%(from)s (%(date)s) (%(tags)s)" % (msg) + + def format_as_text(self): + """ Output like notmuch show """ + return str(self) def __del__(self): """Close and free the notmuch Message""" @@ -122,7 +122,7 @@ if __name__ == '__main__': logging.debug("show "+querystr) m = Query(db,querystr).search_messages() for msg in m: - print("%s" % (msg)) + print(msg.format_as_text()) elif sys.argv[1] == 'new': #TODO: handle --verbose |
