implement stub for notmuch show. Remove finished ToDo items
authorSebastian Spaeth <sebastian@sspaeth.de>
Tue, 16 Mar 2010 15:41:33 +0000 (16:41 +0100)
committerSebastian Spaeth <sebastian@sspaeth.de>
Tue, 16 Mar 2010 15:41:33 +0000 (16:41 +0100)
--HG--
extra : transplant_source : 2%0B%97h%40Af%07%DD%F2%5ESX%20%05%3D%C0%C5v%F8

cnotmuch/database.py
notmuch

index 09af0df964d15822e2606d76a64a68454fd2c9ba..1619e454193eaeceedc5ba1d0db7bcb9151c126c 100644 (file)
@@ -225,12 +225,12 @@ class Tags(object):
     _get = nmlib.notmuch_tags_get
     _get.restype = c_char_p
 
-    def __init__(self, tags_p, db=None):
+    def __init__(self, tags_p, parent=None):
         """
         msg_p is a pointer to an notmuch_message_t Structure. If it is None,
         we will raise an NotmuchError(STATUS.NULL_POINTER).
 
-        Is passed the db these tags are derived from, and saves a
+        Is passed the parent these tags are derived from, and saves a
         reference to it, so we can automatically delete the db object
         once all derived objects are dead.
 
@@ -244,8 +244,9 @@ class Tags(object):
             NotmuchError(STATUS.NULL_POINTER)
 
         self._tags = tags_p
-        self._db = db
-        logging.debug("Inited Tags derived from %s" %(str(db)))
+        #save reference to parent object so we keep it alive
+        self._parent = parent
+        logging.debug("Inited Tags derived from %s" %(repr(parent)))
     
     def __iter__(self):
         """ Make Tags an iterator """
@@ -436,6 +437,11 @@ class Message(object):
             raise NotmuchError(STATUS.NULL_POINTER)
         return Tags(tags_p, self)
 
+    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)
+
     def __del__(self):
         """Close and free the notmuch Message"""
         if self._msg is not None:
diff --git a/notmuch b/notmuch
index 478aed3ab0108fd79fac1d524fbcf03623b68e42..4e259c1c201815bfeba12760409e5a34e30f7ff8 100755 (executable)
--- a/notmuch
+++ b/notmuch
@@ -111,6 +111,19 @@ if __name__ == '__main__':
        if len(sys.argv) == 2: print HELPTEXT
        else: print "Not implemented"
 
+   elif sys.argv[1] == 'show':
+      db = Database()
+      if len(sys.argv) == 2:
+         #no further search term
+         querystr=''
+      else:
+         #mangle arguments wrapping terms with spaces in quotes
+         querystr = quote_query_line(sys.argv[2:])
+      logging.debug("show "+querystr)
+      m = Query(db,querystr).search_messages()
+      for msg in m:
+         print("%s" % (msg))
+
    elif sys.argv[1] == 'new':
        #TODO: handle --verbose
        print "Not implemented."
@@ -155,27 +168,8 @@ if __name__ == '__main__':
    #TODO: implement
    """
 search [options...] <search-terms> [...]
-
-       Search for messages matching the given search terms.
-
 show   <search-terms> [...]
-
-       Show all messages matching the search terms.
-
 reply  [options...] <search-terms> [...]
-
-       Construct a reply template for a set of messages.
-
 tag    +<tag>|-<tag> [...] [--] <search-terms> [...]
-
-       Add/remove tags for all messages matching the search terms.
-
-dump   [<filename>]
-
-       Create a plain-text dump of the tags for each message.
-
 restore        <filename>
-       search-tags     [<search-terms> [...] ]
-
-               List all tags found in the database or matching messages.
    """