Merge pull request #153 from SkullTech/query-uid__range

Add query uid__range
This commit is contained in:
Martin Rusev
2018-09-10 10:10:15 +02:00
committed by GitHub
3 changed files with 11 additions and 0 deletions

View File

@@ -76,6 +76,9 @@ Usage
# Messages whose subjects contain a string
inbox_messages_subject_christmas = imbox.messages(subject='Christmas')
# Messages whose UID is greater than 1050
inbox_messages_subject_christmas = imbox.messages(uid__range='1050:*')
# Messages from a specific folder
messages_in_folder_social = imbox.messages(folder='Social')

View File

@@ -23,6 +23,7 @@ def build_search_query(**kwargs):
date__lt = kwargs.get('date__lt', False)
date__on = kwargs.get('date__on', False)
subject = kwargs.get('subject')
uid__range = kwargs.get('uid__range')
query = []
@@ -53,6 +54,9 @@ def build_search_query(**kwargs):
if subject is not None:
query.append('(SUBJECT "%s")' % subject)
if uid__range:
query.append('(UID %s)' % uid__range)
if query:
logger.debug("IMAP query: {}".format(" ".join(query)))
return " ".join(query)

View File

@@ -48,3 +48,7 @@ class TestQuery(unittest.TestCase):
def test_date__on(self):
res = build_search_query(date__on=date(2014, 1, 1))
self.assertEqual(res, '(ON "01-Jan-2014")')
def test_uid__range(self):
res = build_search_query(uid__range='1000:*')
self.assertEqual(res, '(UID 1000:*)')