From 7cd668af147243d53f0a60b80137da902af9ad19 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gr=C3=A9gory=20Soutad=C3=A9?= Date: Sun, 20 Nov 2022 21:01:41 +0100 Subject: [PATCH] Count number of threads instead of unread messages in gmail example --- examples/gmail.py | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/examples/gmail.py b/examples/gmail.py index 6262ef8..fbea2da 100644 --- a/examples/gmail.py +++ b/examples/gmail.py @@ -56,21 +56,22 @@ def _initCreds(): token.write(creds.to_json()) def getUnreadMails(): - """Shows basic usage of the Gmail API. - Lists the user's Gmail labels. + """ + Get number of unread threads (that may contain multiple messages) """ _initCreds() service = build('gmail', 'v1', credentials=creds) - nbUnreadMessages = 0 pageToken = '' + threads = set() while True: results = service.users().messages().list(userId='me', labelIds=['UNREAD'],\ includeSpamTrash=False, pageToken=pageToken)\ .execute() - nbUnreadMessages += len(results.get('messages', [])) + threads = threads.union(set([k['threadId'] for k in results['messages']])) + # Loop over all result pages (100 results per page by default) pageToken = results.get('nextPageToken', '') if not pageToken: break - return nbUnreadMessages + return len(threads)