From 70640c1ddb85e7fbf2e5e5e27cb6e33fad5f5975 Mon Sep 17 00:00:00 2001 From: Ross Scroggs Date: Tue, 13 Feb 2024 13:08:20 -0800 Subject: [PATCH] Bug fix/enhancement copy|more drive file --- docs/GamUpdates.md | 7 +++++++ docs/How-to-Upgrade-from-Standard-GAM.md | 4 ++-- docs/Version-and-Help.md | 12 ++++++------ src/GamUpdate.txt | 7 +++++++ src/gam/__init__.py | 12 ++++++++++-- 5 files changed, 32 insertions(+), 10 deletions(-) diff --git a/docs/GamUpdates.md b/docs/GamUpdates.md index d84ea275..a18afc1b 100644 --- a/docs/GamUpdates.md +++ b/docs/GamUpdates.md @@ -10,6 +10,13 @@ Add the `-s` option to the end of the above commands to suppress creating the `g See [Downloads](https://github.com/taers232c/GAMADV-XTD3/wiki/Downloads) for Windows or other options, including manual installation +### 6.68.06 + +Fixed bug in `gam copy drivefile ... mergewithparent` that incorrectly named +the copied file with the name of the parent folder. + +Updated `gam copy|move drivefile` to avoid copying/moving the same file twice. + ### 6.68.05 Updated `gam print groups ... ciallfields|(cifields )` to account for an diff --git a/docs/How-to-Upgrade-from-Standard-GAM.md b/docs/How-to-Upgrade-from-Standard-GAM.md index eec85f51..17c25b6d 100644 --- a/docs/How-to-Upgrade-from-Standard-GAM.md +++ b/docs/How-to-Upgrade-from-Standard-GAM.md @@ -334,7 +334,7 @@ writes the credentials into the file oauth2.txt. admin@server:/Users/admin/bin/gamadv-xtd3$ rm -f /Users/admin/GAMConfig/oauth2.txt admin@server:/Users/admin/bin/gamadv-xtd3$ ./gam version WARNING: Config File: /Users/admin/GAMConfig/gam.cfg, Section: DEFAULT, Item: oauth2_txt, Value: /Users/admin/GAMConfig/oauth2.txt, Not Found -GAMADV-XTD3 6.68.05 - https://github.com/taers232c/GAMADV-XTD3 - pythonsource +GAMADV-XTD3 6.68.06 - https://github.com/taers232c/GAMADV-XTD3 - pythonsource Ross Scroggs Python 3.12.2 64-bit final MacOS Sonoma 14.2.1 x86_64 @@ -1002,7 +1002,7 @@ writes the credentials into the file oauth2.txt. C:\GAMADV-XTD3>del C:\GAMConfig\oauth2.txt C:\GAMADV-XTD3>gam version WARNING: Config File: C:\GAMConfig\gam.cfg, Section: DEFAULT, Item: oauth2_txt, Value: C:\GAMConfig\oauth2.txt, Not Found -GAMADV-XTD3 6.68.05 - https://github.com/taers232c/GAMADV-XTD3 - pythonsource +GAMADV-XTD3 6.68.06 - https://github.com/taers232c/GAMADV-XTD3 - pythonsource Ross Scroggs Python 3.12.2 64-bit final Windows-10-10.0.17134 AMD64 diff --git a/docs/Version-and-Help.md b/docs/Version-and-Help.md index 9f7011a2..5fc4226f 100644 --- a/docs/Version-and-Help.md +++ b/docs/Version-and-Help.md @@ -3,7 +3,7 @@ Print the current version of Gam with details ``` gam version -GAMADV-XTD3 6.68.05 - https://github.com/taers232c/GAMADV-XTD3 - pythonsource +GAMADV-XTD3 6.68.06 - https://github.com/taers232c/GAMADV-XTD3 - pythonsource Ross Scroggs Python 3.12.2 64-bit final MacOS Sonoma 14.2.1 x86_64 @@ -15,7 +15,7 @@ Time: 2023-06-02T21:10:00-07:00 Print the current version of Gam with details and time offset information ``` gam version timeoffset -GAMADV-XTD3 6.68.05 - https://github.com/taers232c/GAMADV-XTD3 - pythonsource +GAMADV-XTD3 6.68.06 - https://github.com/taers232c/GAMADV-XTD3 - pythonsource Ross Scroggs Python 3.12.2 64-bit final MacOS Sonoma 14.2.1 x86_64 @@ -27,7 +27,7 @@ Your system time differs from www.googleapis.com by less than 1 second Print the current version of Gam with extended details and SSL information ``` gam version extended -GAMADV-XTD3 6.68.05 - https://github.com/taers232c/GAMADV-XTD3 - pythonsource +GAMADV-XTD3 6.68.06 - https://github.com/taers232c/GAMADV-XTD3 - pythonsource Ross Scroggs Python 3.12.2 64-bit final MacOS Sonoma 14.2.1 x86_64 @@ -64,7 +64,7 @@ MacOS High Sierra 10.13.6 x86_64 Path: /Users/Admin/bin/gamadv-xtd3 Version Check: Current: 5.35.08 - Latest: 6.68.05 + Latest: 6.68.06 echo $? 1 ``` @@ -72,7 +72,7 @@ echo $? Print the current version number without details ``` gam version simple -6.68.05 +6.68.06 ``` In Linux/MacOS you can do: ``` @@ -82,7 +82,7 @@ echo $VER Print the current version of Gam and address of this Wiki ``` gam help -GAM 6.68.05 - https://github.com/taers232c/GAMADV-XTD3 +GAM 6.68.06 - https://github.com/taers232c/GAMADV-XTD3 Ross Scroggs Python 3.12.2 64-bit final MacOS Sonoma 14.2.1 x86_64 diff --git a/src/GamUpdate.txt b/src/GamUpdate.txt index 4f5984e8..31dbf75a 100644 --- a/src/GamUpdate.txt +++ b/src/GamUpdate.txt @@ -1,3 +1,10 @@ +6.68.06 + +Fixed bug in `gam copy drivefile ... mergewithparent` that incorrectly named +the copied file with the name of the parent folder. + +Updated `gam copy|move drivefile` to avoid copying/moving the same file twice. + 7.00.00 Merged GAM-Team version diff --git a/src/gam/__init__.py b/src/gam/__init__.py index 8e28f16d..ebdd99bb 100755 --- a/src/gam/__init__.py +++ b/src/gam/__init__.py @@ -56816,6 +56816,10 @@ def copyDriveFile(users): sourceNameId = f"{sourceName}({source['id']})" copyMoveOptions['sourceDriveId'] = source.get('driveId') kvList = [Ent.USER, user, _getEntityMimeType(source), sourceNameId] + if fileId in copiedSourceFiles: + entityActionNotPerformedWarning(kvList, Msg.DUPLICATE, j, jcount) + _incrStatistic(statistics, STAT_FILE_DUPLICATE) + continue if fileId in skipFileIdEntity['list']: entityActionNotPerformedWarning(kvList, Msg.IN_SKIPIDS, j, jcount) _incrStatistic(statistics, STAT_FILE_IN_SKIPIDS) @@ -56862,7 +56866,7 @@ def copyDriveFile(users): 'includeItemsFromAllDrives': True, 'supportsAllDrives': True} if copyMoveOptions['newFilename']: destName = copyMoveOptions['newFilename'] - elif copyMoveOptions['mergeWithParent']: + elif (sourceMimeType == MIMETYPE_GA_FOLDER) and copyMoveOptions['mergeWithParent']: destName = dest['name'] elif ((newParentsSpecified and newParentId not in sourceParents) or ((newParentId in sourceParents and @@ -57576,6 +57580,10 @@ def moveDriveFile(users): sourceNameId = f"{sourceName}({source['id']})" copyMoveOptions['sourceDriveId'] = source.get('driveId') kvList = [Ent.USER, user, _getEntityMimeType(source), sourceNameId] + if fileId in movedFiles: + entityActionNotPerformedWarning(kvList, Msg.DUPLICATE, j, jcount) + _incrStatistic(statistics, STAT_FILE_DUPLICATE) + continue if copyMoveOptions['sourceDriveId']: # If moving from a Shared Drive, user has to be an organizer if verifyOrganizer and not _verifyUserIsOrganizer(drive, user, i, count, copyMoveOptions['sourceDriveId']): @@ -66908,7 +66916,7 @@ def printShowMessagesThreads(users, entityType): printKeyValueList(['size', part['body']['size']]) if charset: printKeyValueList(['charset', charset]) - + def _showSaveAttachments(messageId, payload, attachmentNamePattern): for part in payload.get('parts', []): if 'attachmentId' in part['body']: