From 85025b34ff9759bd78aa8933b174c4076f77f8b3 Mon Sep 17 00:00:00 2001 From: Manikantan Ramchandran Date: Sat, 28 Oct 2017 16:58:05 +0530 Subject: [PATCH 1/4] added flagged and unflagged query options --- imbox/query.py | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/imbox/query.py b/imbox/query.py index 417f8b1..f44239c 100644 --- a/imbox/query.py +++ b/imbox/query.py @@ -17,6 +17,8 @@ def build_search_query(**kwargs): # Parse keyword arguments unread = kwargs.get('unread', False) + unflagged = kwargs.get('unflagged', False) + flagged = kwargs.get('flagged', False) sent_from = kwargs.get('sent_from', False) sent_to = kwargs.get('sent_to', False) date__gt = kwargs.get('date__gt', False) @@ -32,6 +34,12 @@ def build_search_query(**kwargs): if unread: query.append("(UNSEEN)") + if unflagged: + query.append("(UNFLAGGED)") + + if flagged: + query.append("(FLAGGED)") + if sent_from: query.append('(FROM "%s")' % sent_from) From 14c592136eefa979549804424c5c58409f810540 Mon Sep 17 00:00:00 2001 From: Manikantan Ramchandran Date: Sat, 28 Oct 2017 16:59:11 +0530 Subject: [PATCH 2/4] added mark as flagged or starred feature --- imbox/__init__.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/imbox/__init__.py b/imbox/__init__.py index 657af78..3c48b30 100644 --- a/imbox/__init__.py +++ b/imbox/__init__.py @@ -60,6 +60,10 @@ class Imbox: logger.info("Mark UID {} with \\Seen FLAG".format(int(uid))) self.connection.uid('STORE', uid, '+FLAGS', '(\\Seen)') + def mark_flag(self, uid): + logger.info("Mark UID {} with \\Flagged FLAG".format(int(uid))) + self.connection.uid('STORE', uid, '+FLAGS', '(\\Flagged)') + def delete(self, uid): logger.info("Mark UID {} with \\Deleted FLAG and expunge.".format(int(uid))) mov, data = self.connection.uid('STORE', uid, '+FLAGS', '(\\Deleted)') From ffd4550524bce011b58762eea47096cd30661176 Mon Sep 17 00:00:00 2001 From: Manikantan Ramchandran Date: Sat, 28 Oct 2017 17:16:44 +0530 Subject: [PATCH 3/4] added tests for flagged and unflagged queries --- tests/query_tests.py | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/tests/query_tests.py b/tests/query_tests.py index 40b0b84..e3ff3b6 100644 --- a/tests/query_tests.py +++ b/tests/query_tests.py @@ -15,6 +15,16 @@ class TestQuery(unittest.TestCase): res = build_search_query(unread=True) self.assertEqual(res, "(UNSEEN)") + def test_unflagged(self): + + res = build_search_query(unflagged=True) + self.assertEqual(res, "(UNFFLAGGED)") + + def test_flagged(self): + + res = build_search_query(flagged=True) + self.assertEqual(res, "(FLAGGED)") + def test_sent_from(self): res = build_search_query(sent_from='test@example.com') From 2f72aa13dfc32af4e40916b39ab0e5a7a2ee11e1 Mon Sep 17 00:00:00 2001 From: Manikantan Ramchandran Date: Sat, 28 Oct 2017 17:17:49 +0530 Subject: [PATCH 4/4] typo fix --- tests/query_tests.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/query_tests.py b/tests/query_tests.py index e3ff3b6..195e09a 100644 --- a/tests/query_tests.py +++ b/tests/query_tests.py @@ -18,7 +18,7 @@ class TestQuery(unittest.TestCase): def test_unflagged(self): res = build_search_query(unflagged=True) - self.assertEqual(res, "(UNFFLAGGED)") + self.assertEqual(res, "(UNFLAGGED)") def test_flagged(self):