From 6e9068c9528f2b61c223428663a1658d1b628c51 Mon Sep 17 00:00:00 2001 From: Ross Scroggs Date: Tue, 5 Nov 2019 15:08:47 -0800 Subject: [PATCH] Fix race condition/fix rename labels (#1043) * Fix race condition From filelock.py in UnixFileLock # Do not remove the lockfile:^M #^M # https://github.com/benediktschmitt/py-filelock/issues/31^M # https://stackoverflow.com/questions/17708885/flock-removing-locked-file-without-race-condition^M * Encode (){} in label: query --- src/gam.py | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/gam.py b/src/gam.py index 0fd399f99..53672533a 100755 --- a/src/gam.py +++ b/src/gam.py @@ -1348,11 +1348,6 @@ def getValidOauth2TxtCredentials(force_refresh=False): elif credentials is None or not credentials.valid: doRequestOAuth() credentials = getOauth2TxtStorageCredentials() - if not GM_Globals[GM_WINDOWS]: - try: - os.remove(lock_file) - except IOError: - pass return credentials def getService(api, http): @@ -6465,6 +6460,11 @@ def updateLabels(users): else: print('Error: user does not have a label named %s' % label_name) +def cleanLabelQuery(labelQuery): + for ch in '/ (){}': + labelQuery = labelQuery.replace(ch, '-') + return labelQuery.lower() + def renameLabels(users): search = '^Inbox/(.*)$' replace = '%s' @@ -6505,7 +6505,7 @@ def renameLabels(users): if merge: print(' Merging %s label to existing %s label' % (label['name'], new_label_name)) messages_to_relabel = callGAPIpages(gmail.users().messages(), 'list', 'messages', - userId=user, q='label:%s' % label['name'].lower().replace('/', '-').replace(' ', '-')) + userId=user, q='label:%s' % cleanLabelQuery(label['name'])) if messages_to_relabel: for new_label in labels['labels']: if new_label['name'].lower() == new_label_name.lower():