mirror of
https://github.com/GAM-team/GAM.git
synced 2026-07-03 20:31:35 +00:00
'gam <users> update labels' cleanup
This commit is contained in:
35
gam.py
35
gam.py
@@ -2988,18 +2988,9 @@ def renameLabels(users):
|
|||||||
for user in users:
|
for user in users:
|
||||||
gmail = buildGAPIServiceObject(u'gmail', act_as=user)
|
gmail = buildGAPIServiceObject(u'gmail', act_as=user)
|
||||||
labels = callGAPI(service=gmail.users().labels(), function=u'list', userId=user)
|
labels = callGAPI(service=gmail.users().labels(), function=u'list', userId=user)
|
||||||
already_renamed_parents = list()
|
|
||||||
for label in labels[u'labels']:
|
for label in labels[u'labels']:
|
||||||
if label[u'type'] == u'system':
|
if label[u'type'] == u'system':
|
||||||
continue
|
continue
|
||||||
already_renamed_child = False
|
|
||||||
for already_renamed_parent in already_renamed_parents:
|
|
||||||
parent_length = len(already_renamed_parent)
|
|
||||||
if label[u'name'][:parent_length+1] == '%s/' % already_renamed_parent:
|
|
||||||
already_renamed_child = True
|
|
||||||
break
|
|
||||||
if already_renamed_child:
|
|
||||||
continue
|
|
||||||
match_result = re.search(pattern, label[u'name'])
|
match_result = re.search(pattern, label[u'name'])
|
||||||
if match_result != None:
|
if match_result != None:
|
||||||
new_label_name = replace % match_result.groups()
|
new_label_name = replace % match_result.groups()
|
||||||
@@ -3010,24 +3001,24 @@ def renameLabels(users):
|
|||||||
if merge:
|
if merge:
|
||||||
print u' Merging %s label to existing %s label' % (label[u'name'], new_label_name)
|
print u' Merging %s label to existing %s label' % (label[u'name'], new_label_name)
|
||||||
q = u'label:"%s"' % label[u'name']
|
q = u'label:"%s"' % label[u'name']
|
||||||
print q
|
|
||||||
messages_to_relabel = callGAPIpages(service=gmail.users().messages(), function=u'list', items=u'messages', userId=user, q=q)
|
messages_to_relabel = callGAPIpages(service=gmail.users().messages(), function=u'list', items=u'messages', userId=user, q=q)
|
||||||
for new_label in labels[u'labels']:
|
if len(messages_to_relabel) > 0:
|
||||||
if new_label[u'name'].lower() == new_label_name.lower():
|
for new_label in labels[u'labels']:
|
||||||
new_label_id = new_label[u'id']
|
if new_label[u'name'].lower() == new_label_name.lower():
|
||||||
body = {u'addLabelIds': [new_label_id]}
|
new_label_id = new_label[u'id']
|
||||||
break
|
body = {u'addLabelIds': [new_label_id]}
|
||||||
i = 1
|
break
|
||||||
for message_to_relabel in messages_to_relabel:
|
i = 1
|
||||||
print u' relabeling message %s (%s/%s)' % (message_to_relabel[u'id'], i, len(messages_to_relabel))
|
for message_to_relabel in messages_to_relabel:
|
||||||
callGAPI(service=gmail.users().messages(), function=u'modify', userId=user, id=message_to_relabel[u'id'], body=body)
|
print u' relabeling message %s (%s/%s)' % (message_to_relabel[u'id'], i, len(messages_to_relabel))
|
||||||
i += 1
|
callGAPI(service=gmail.users().messages(), function=u'modify', userId=user, id=message_to_relabel[u'id'], body=body)
|
||||||
|
i += 1
|
||||||
|
else:
|
||||||
|
print u' no messages with %s label' % label[u'name']
|
||||||
print u' Deleting label %s' % label[u'name']
|
print u' Deleting label %s' % label[u'name']
|
||||||
callGAPI(service=gmail.users().labels(), function=u'delete', id=label[u'id'], userId=user)
|
callGAPI(service=gmail.users().labels(), function=u'delete', id=label[u'id'], userId=user)
|
||||||
else:
|
else:
|
||||||
print u' Error: looks like %s already exists, not renaming. Use the "merge" argument to merge the labels' % new_label_name
|
print u' Error: looks like %s already exists, not renaming. Use the "merge" argument to merge the labels' % new_label_name
|
||||||
continue
|
|
||||||
already_renamed_parents.append(label)
|
|
||||||
|
|
||||||
def doFilter(users):
|
def doFilter(users):
|
||||||
i = 4 # filter arguments start here
|
i = 4 # filter arguments start here
|
||||||
|
|||||||
Reference in New Issue
Block a user