implement message counting

--HG--
extra : transplant_source : %8E%83%C2%83%FA%F8X%B6%16%1D%D3X%C4o%A2%A8%28%11G%AF
This commit is contained in:
Sebastian Spaeth 2010-03-16 15:53:54 +01:00
parent d099b79fd1
commit 3b2d73c684
2 changed files with 29 additions and 0 deletions

View file

@ -329,6 +329,24 @@ class Messages(object):
nmlib.notmuch_messages_move_to_next(self._msgs) nmlib.notmuch_messages_move_to_next(self._msgs)
return msg return msg
def __len__(self):
""" Returns the number of contained messages
:note: As this iterates over the messages, we will not be able to
iterate over them again (as in retrieve them)!
"""
if self._msgs is None:
raise NotmuchError(STATUS.NOT_INITIALIZED)
i=0
while nmlib.notmuch_messages_valid(self._msgs):
nmlib.notmuch_messages_move_to_next(self._msgs)
i += 1
self._msgs = None
return i
def __del__(self): def __del__(self):
"""Close and free the notmuch Messages""" """Close and free the notmuch Messages"""
if self._msgs is not None: if self._msgs is not None:

11
notmuch
View file

@ -115,6 +115,17 @@ if __name__ == '__main__':
#TODO: handle --verbose #TODO: handle --verbose
print "Not implemented." print "Not implemented."
elif sys.argv[1] == 'count':
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("count "+querystr)
print(len(Query(db,querystr).search_messages()))
elif sys.argv[1] == 'search-tags': elif sys.argv[1] == 'search-tags':
if len(sys.argv) == 2: if len(sys.argv) == 2:
#no further search term #no further search term