mirror of
https://github.com/GAM-team/GAM.git
synced 2025-07-09 14:13:35 +00:00
switch "delete messages" to use batchDelete() for performance
This commit is contained in:
17
src/gam.py
17
src/gam.py
@ -4552,7 +4552,7 @@ def doProcessMessages(users, function):
|
|||||||
function=u'list', items=u'messages', page_message=page_message,
|
function=u'list', items=u'messages', page_message=page_message,
|
||||||
userId=u'me', q=query, includeSpamTrash=True, soft_errors=True)
|
userId=u'me', q=query, includeSpamTrash=True, soft_errors=True)
|
||||||
result_count = len(listResult)
|
result_count = len(listResult)
|
||||||
if not doIt:
|
if not doIt or result_count == 0:
|
||||||
print u'would try to %s %s messages for user %s (max %s)\n' % (function, result_count, user, maxToProcess)
|
print u'would try to %s %s messages for user %s (max %s)\n' % (function, result_count, user, maxToProcess)
|
||||||
continue
|
continue
|
||||||
elif result_count > maxToProcess:
|
elif result_count > maxToProcess:
|
||||||
@ -4565,6 +4565,21 @@ def doProcessMessages(users, function):
|
|||||||
for my_key in body.keys():
|
for my_key in body.keys():
|
||||||
kwargs[u'body'][my_key] = labelsToLabelIds(gmail, body[my_key])
|
kwargs[u'body'][my_key] = labelsToLabelIds(gmail, body[my_key])
|
||||||
i = 0
|
i = 0
|
||||||
|
if function == u'delete':
|
||||||
|
id_batches = [[]]
|
||||||
|
for del_me in listResult:
|
||||||
|
id_batches[i].append(del_me[u'id'])
|
||||||
|
if len(id_batches[i]) == 1000:
|
||||||
|
i += 1
|
||||||
|
id_batches.append([])
|
||||||
|
deleted_messages = 0
|
||||||
|
for id_batch in id_batches:
|
||||||
|
print u'deleting %s messages' % len(id_batch)
|
||||||
|
callGAPI(service=gmail.users().messages(), function=u'batchDelete',
|
||||||
|
body={u'ids': id_batch}, userId=u'me')
|
||||||
|
deleted_messages += len(id_batch)
|
||||||
|
print u'deleted %s of %s messages' % (deleted_messages, result_count)
|
||||||
|
continue
|
||||||
for a_message in listResult:
|
for a_message in listResult:
|
||||||
i += 1
|
i += 1
|
||||||
print u' %s message %s for user %s (%s/%s)' % (function, a_message[u'id'], user, i, result_count)
|
print u' %s message %s for user %s (%s/%s)' % (function, a_message[u'id'], user, i, result_count)
|
||||||
|
Reference in New Issue
Block a user