gam7 7.6.1__py3-none-any.whl → 7.6.3__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of gam7 might be problematic. Click here for more details.
- gam/__init__.py +178 -26
- gam/gamlib/glclargs.py +2 -0
- {gam7-7.6.1.dist-info → gam7-7.6.3.dist-info}/METADATA +1 -1
- {gam7-7.6.1.dist-info → gam7-7.6.3.dist-info}/RECORD +7 -7
- {gam7-7.6.1.dist-info → gam7-7.6.3.dist-info}/WHEEL +0 -0
- {gam7-7.6.1.dist-info → gam7-7.6.3.dist-info}/entry_points.txt +0 -0
- {gam7-7.6.1.dist-info → gam7-7.6.3.dist-info}/licenses/LICENSE +0 -0
gam/__init__.py
CHANGED
|
@@ -25,7 +25,7 @@ https://github.com/GAM-team/GAM/wiki
|
|
|
25
25
|
"""
|
|
26
26
|
|
|
27
27
|
__author__ = 'GAM Team <google-apps-manager@googlegroups.com>'
|
|
28
|
-
__version__ = '7.06.
|
|
28
|
+
__version__ = '7.06.03'
|
|
29
29
|
__license__ = 'Apache License 2.0 (http://www.apache.org/licenses/LICENSE-2.0)'
|
|
30
30
|
|
|
31
31
|
#pylint: disable=wrong-import-position
|
|
@@ -28152,10 +28152,18 @@ CHROME_SCHEMA_TYPE_MESSAGE = {
|
|
|
28152
28152
|
{'autoupdatecheckperiodminutesnew':
|
|
28153
28153
|
{'casedField': 'autoUpdateCheckPeriodMinutesNew',
|
|
28154
28154
|
'type': 'duration', 'minVal': 1, 'maxVal': 720, 'scale': 60}},
|
|
28155
|
+
'chrome.users.AutoUpdateCheckPeriodNewV2':
|
|
28156
|
+
{'autoupdatecheckperiodminutesnew':
|
|
28157
|
+
{'casedField': 'autoUpdateCheckPeriodMinutesNew',
|
|
28158
|
+
'type': 'duration', 'minVal': 1, 'maxVal': 720, 'scale': 60}},
|
|
28155
28159
|
'chrome.users.BrowserSwitcherDelayDuration':
|
|
28156
28160
|
{'browserswitcherdelayduration':
|
|
28157
28161
|
{'casedField': 'browserSwitcherDelayDuration',
|
|
28158
28162
|
'type': 'duration', 'minVal': 0, 'maxVal': 30, 'scale': 1}},
|
|
28163
|
+
'chrome.users.CloudReportingUploadFrequencyV2':
|
|
28164
|
+
{'cloudreportinguploadfrequency':
|
|
28165
|
+
{'casedField': 'cloudReportingUploadFrequency',
|
|
28166
|
+
'type': 'count', 'minVal': 3, 'maxVal': 24, 'scale': 1}},
|
|
28159
28167
|
'chrome.users.FetchKeepaliveDurationSecondsOnShutdown':
|
|
28160
28168
|
{'fetchkeepalivedurationsecondsonshutdown':
|
|
28161
28169
|
{'casedField': 'fetchKeepaliveDurationSecondsOnShutdown',
|
|
@@ -28172,6 +28180,10 @@ CHROME_SCHEMA_TYPE_MESSAGE = {
|
|
|
28172
28180
|
{'printjobhistoryexpirationperioddaysnew':
|
|
28173
28181
|
{'casedField': 'printJobHistoryExpirationPeriodDaysNew',
|
|
28174
28182
|
'type': 'duration', 'minVal': -1, 'maxVal': None, 'scale': 86400}},
|
|
28183
|
+
'chrome.users.RelaunchNotificationWithDurationV2':
|
|
28184
|
+
{'relaunchnotificationperiodduration':
|
|
28185
|
+
{'casedField': 'relaunchNotificationPeriodDuration',
|
|
28186
|
+
'type': 'duration', 'minVal': -1, 'maxVal': None, 'scale': 3600}},
|
|
28175
28187
|
'chrome.users.SecurityTokenSessionSettings':
|
|
28176
28188
|
{'securitytokensessionnotificationseconds':
|
|
28177
28189
|
{'casedField': 'securityTokenSessionNotificationSeconds',
|
|
@@ -56474,6 +56486,45 @@ def printFileParentTree(users):
|
|
|
56474
56486
|
kcount -= 1
|
|
56475
56487
|
csvPF.writeCSVfile('Drive File Parent Tree')
|
|
56476
56488
|
|
|
56489
|
+
# Last file modification utilities
|
|
56490
|
+
def _initLastModification():
|
|
56491
|
+
return {'lastModifiedFileId': '', 'lastModifiedFileName': '',
|
|
56492
|
+
'lastModifiedFileMimeType': '', 'lastModifiedFilePath': '',
|
|
56493
|
+
'lastModifyingUser': '', 'lastModifiedTime': NEVER_TIME,
|
|
56494
|
+
'fileEntryInfo': {}}
|
|
56495
|
+
|
|
56496
|
+
def _checkUpdateLastModifiction(f_file, userLastModification):
|
|
56497
|
+
if f_file.get('modifiedTime', NEVER_TIME) > userLastModification['lastModifiedTime'] and 'lastModifyingUser' in f_file:
|
|
56498
|
+
userLastModification['lastModifiedFileId'] = f_file['id']
|
|
56499
|
+
userLastModification['lastModifiedFileName'] = _stripControlCharsFromName(f_file['name'])
|
|
56500
|
+
userLastModification['lastModifiedFileMimeType'] = f_file['mimeType']
|
|
56501
|
+
userLastModification['lastModifiedTime'] = f_file['modifiedTime']
|
|
56502
|
+
userLastModification['lastModifyingUser'] = f_file['lastModifyingUser'].get('emailAddress',
|
|
56503
|
+
f_file['lastModifyingUser'].get('displayName', UNKNOWN))
|
|
56504
|
+
userLastModification['fileEntryInfo'] = f_file.copy()
|
|
56505
|
+
|
|
56506
|
+
def _getLastModificationPath(drive, userLastModification, pathDelimiter):
|
|
56507
|
+
if userLastModification['fileEntryInfo']:
|
|
56508
|
+
filePathInfo = initFilePathInfo(pathDelimiter)
|
|
56509
|
+
_, paths, _ = getFilePaths(drive, {}, userLastModification['fileEntryInfo'], filePathInfo)
|
|
56510
|
+
userLastModification['lastModifiedFilePath'] = paths[0] if paths else UNKNOWN
|
|
56511
|
+
|
|
56512
|
+
def _showLastModification(lastModification):
|
|
56513
|
+
printKeyValueList(['lastModifiedFileId', lastModification['lastModifiedFileId']])
|
|
56514
|
+
printKeyValueList(['lastModifiedFileName', lastModification['lastModifiedFileName']])
|
|
56515
|
+
printKeyValueList(['lastModifiedFileMimeType', lastModification['lastModifiedFileMimeType']])
|
|
56516
|
+
printKeyValueList(['lastModifiedFilePath', lastModification['lastModifiedFilePath']])
|
|
56517
|
+
printKeyValueList(['lastModifyingUser', lastModification['lastModifyingUser']])
|
|
56518
|
+
printKeyValueList(['lastModifiedTime', formatLocalTime(lastModification['lastModifiedTime'])])
|
|
56519
|
+
|
|
56520
|
+
def _updateLastModificationRow(row, lastModification):
|
|
56521
|
+
row.update({'lastModifiedFileId': lastModification['lastModifiedFileId'],
|
|
56522
|
+
'lastModifiedFileName': lastModification['lastModifiedFileName'],
|
|
56523
|
+
'lastModifiedFileMimeType': lastModification['lastModifiedFileMimeType'],
|
|
56524
|
+
'lastModifiedFilePath': lastModification['lastModifiedFilePath'],
|
|
56525
|
+
'lastModifyingUser': lastModification['lastModifyingUser'],
|
|
56526
|
+
'lastModifiedTime': formatLocalTime(lastModification['lastModifiedTime'])})
|
|
56527
|
+
|
|
56477
56528
|
# gam <UserTypeEntity> print filecounts [todrive <ToDriveAttribute>*]
|
|
56478
56529
|
# [((query <QueryDriveFile>) | (fullquery <QueryDriveFile>) | <DriveFileQueryShortcut>) (querytime<String> <Time>)*]
|
|
56479
56530
|
# [continueoninvalidquery [<Boolean>]]
|
|
@@ -56485,7 +56536,8 @@ def printFileParentTree(users):
|
|
|
56485
56536
|
# [filenamematchpattern <REMatchPattern>]
|
|
56486
56537
|
# <PermissionMatch>* [<PermissionMatchMode>] [<PermissionMatchAction>]
|
|
56487
56538
|
# [excludetrashed] (addcsvdata <FieldName> <String>)*
|
|
56488
|
-
# [showsize] [showmimetypesize]
|
|
56539
|
+
# [showsize] [showmimetypesize]
|
|
56540
|
+
# [showlastmodification] [pathdelimiter <Character>]
|
|
56489
56541
|
# (addcsvdata <FieldName> <String>)*
|
|
56490
56542
|
# [summary none|only|plus] [summaryuser <String>]
|
|
56491
56543
|
# gam <UserTypeEntity> show filecounts
|
|
@@ -56499,7 +56551,8 @@ def printFileParentTree(users):
|
|
|
56499
56551
|
# [filenamematchpattern <REMatchPattern>]
|
|
56500
56552
|
# <PermissionMatch>* [<PermissionMatchMode>] [<PermissionMatchAction>]
|
|
56501
56553
|
# [excludetrashed]
|
|
56502
|
-
# [showsize] [showmimetypesize]
|
|
56554
|
+
# [showsize] [showmimetypesize]
|
|
56555
|
+
# [showlastmodification] [pathdelimiter <Character>]
|
|
56503
56556
|
# [summary none|only|plus] [summaryuser <String>]
|
|
56504
56557
|
def printShowFileCounts(users):
|
|
56505
56558
|
def _setSelectionFields():
|
|
@@ -56508,7 +56561,7 @@ def printShowFileCounts(users):
|
|
|
56508
56561
|
if showSize or (DLP.minimumFileSize is not None) or (DLP.maximumFileSize is not None):
|
|
56509
56562
|
fieldsList.append(sizeField)
|
|
56510
56563
|
if showLastModification:
|
|
56511
|
-
fieldsList.extend(['id,name,modifiedTime,lastModifyingUser(me, displayName, emailAddress)'])
|
|
56564
|
+
fieldsList.extend(['id,name,modifiedTime,lastModifyingUser(me, displayName, emailAddress),parents'])
|
|
56512
56565
|
if DLP.filenameMatchPattern:
|
|
56513
56566
|
fieldsList.append('name')
|
|
56514
56567
|
if DLP.excludeTrashed:
|
|
@@ -56544,9 +56597,7 @@ def printShowFileCounts(users):
|
|
|
56544
56597
|
printEntityKVList(kvList, dataList, i, count)
|
|
56545
56598
|
Ind.Increment()
|
|
56546
56599
|
if showLastModification:
|
|
56547
|
-
|
|
56548
|
-
'lastModifyingUser', lastModification['lastModifyingUser'],
|
|
56549
|
-
'lastModifiedTime', formatLocalTime(lastModification['lastModifiedTime'])])
|
|
56600
|
+
_showLastModification(lastModification)
|
|
56550
56601
|
for mimeType, mtinfo in sorted(iter(mimeTypeInfo.items())):
|
|
56551
56602
|
if not showMimeTypeSize:
|
|
56552
56603
|
printKeyValueList([mimeType, mtinfo['count']])
|
|
@@ -56561,10 +56612,7 @@ def printShowFileCounts(users):
|
|
|
56561
56612
|
if showSize:
|
|
56562
56613
|
row['Size'] = sizeTotal
|
|
56563
56614
|
if showLastModification:
|
|
56564
|
-
row
|
|
56565
|
-
'lastModifiedFileName': lastModification['lastModifiedFileName'],
|
|
56566
|
-
'lastModifyingUser': lastModification['lastModifyingUser'],
|
|
56567
|
-
'lastModifiedTime': formatLocalTime(lastModification['lastModifiedTime'])})
|
|
56615
|
+
_updateLastModificationRow(row, lastModification)
|
|
56568
56616
|
if addCSVData:
|
|
56569
56617
|
row.update(addCSVData)
|
|
56570
56618
|
for mimeType, mtinfo in sorted(iter(mimeTypeInfo.items())):
|
|
@@ -56578,6 +56626,7 @@ def printShowFileCounts(users):
|
|
|
56578
56626
|
csvPF.SetZeroBlankMimeTypeCounts(True)
|
|
56579
56627
|
fieldsList = ['mimeType']
|
|
56580
56628
|
DLP = DriveListParameters({'allowChoose': False, 'allowCorpora': True, 'allowQuery': True, 'mimeTypeInQuery': True})
|
|
56629
|
+
pathDelimiter = '/'
|
|
56581
56630
|
sharedDriveId = sharedDriveName = ''
|
|
56582
56631
|
continueOnInvalidQuery = showSize = showLastModification = showMimeTypeSize = False
|
|
56583
56632
|
sizeField = 'quotaBytesUsed'
|
|
@@ -56586,9 +56635,7 @@ def printShowFileCounts(users):
|
|
|
56586
56635
|
summaryMimeTypeInfo = {}
|
|
56587
56636
|
fileIdEntity = {}
|
|
56588
56637
|
addCSVData = {}
|
|
56589
|
-
summaryLastModification =
|
|
56590
|
-
'lastModifiedFileId': '', 'lastModifiedFileName': '',
|
|
56591
|
-
'lastModifyingUser': '', 'lastModifiedTime': NEVER_TIME}
|
|
56638
|
+
summaryLastModification = _initLastModification()
|
|
56592
56639
|
while Cmd.ArgumentsRemaining():
|
|
56593
56640
|
myarg = getArgument()
|
|
56594
56641
|
if csvPF and myarg == 'todrive':
|
|
@@ -56611,6 +56658,8 @@ def printShowFileCounts(users):
|
|
|
56611
56658
|
summary = getChoice(FILECOUNT_SUMMARY_CHOICE_MAP, mapChoice=True)
|
|
56612
56659
|
elif myarg == 'summaryuser':
|
|
56613
56660
|
summaryUser = getString(Cmd.OB_STRING)
|
|
56661
|
+
elif myarg == 'pathdelimiter':
|
|
56662
|
+
pathDelimiter = getCharacter()
|
|
56614
56663
|
elif csvPF and myarg == 'addcsvdata':
|
|
56615
56664
|
k = getString(Cmd.OB_STRING)
|
|
56616
56665
|
addCSVData[k] = getString(Cmd.OB_STRING, minLen=0)
|
|
@@ -56637,7 +56686,9 @@ def printShowFileCounts(users):
|
|
|
56637
56686
|
if showSize:
|
|
56638
56687
|
sortTitles.insert(sortTitles.index('Total')+1, 'Size')
|
|
56639
56688
|
if showLastModification:
|
|
56640
|
-
sortTitles.extend(['lastModifiedFileId', 'lastModifiedFileName',
|
|
56689
|
+
sortTitles.extend(['lastModifiedFileId', 'lastModifiedFileName',
|
|
56690
|
+
'lastModifiedFileMimeType', 'lastModifiedFilePath',
|
|
56691
|
+
'lastModifyingUser', 'lastModifiedTime'])
|
|
56641
56692
|
if addCSVData:
|
|
56642
56693
|
sortTitles.extend(sorted(addCSVData.keys()))
|
|
56643
56694
|
csvPF.SetTitles(sortTitles)
|
|
@@ -56652,9 +56703,7 @@ def printShowFileCounts(users):
|
|
|
56652
56703
|
sharedDriveId = fileIdEntity.get('shareddrive', {}).get('driveId', '')
|
|
56653
56704
|
sharedDriveName = _getSharedDriveNameFromId(sharedDriveId) if sharedDriveId else ''
|
|
56654
56705
|
mimeTypeInfo = {}
|
|
56655
|
-
userLastModification =
|
|
56656
|
-
'lastModifiedFileId': '', 'lastModifiedFileName': '',
|
|
56657
|
-
'lastModifyingUser': '', 'lastModifiedTime': NEVER_TIME}
|
|
56706
|
+
userLastModification = _initLastModification()
|
|
56658
56707
|
gettingEntity = _getGettingEntity(user, fileIdEntity)
|
|
56659
56708
|
printGettingAllEntityItemsForWhom(Ent.DRIVE_FILE_OR_FOLDER, gettingEntity, i, count, query=DLP.fileIdEntity['query'])
|
|
56660
56709
|
try:
|
|
@@ -56666,7 +56715,7 @@ def printShowFileCounts(users):
|
|
|
56666
56715
|
retryReasons=[GAPI.UNKNOWN_ERROR],
|
|
56667
56716
|
q=DLP.fileIdEntity['query'],
|
|
56668
56717
|
fields=pagesFields, pageSize=GC.Values[GC.DRIVE_MAX_RESULTS], **btkwargs)
|
|
56669
|
-
for files in
|
|
56718
|
+
for files in feed:
|
|
56670
56719
|
for f_file in files:
|
|
56671
56720
|
driveId = f_file.get('driveId')
|
|
56672
56721
|
checkSharedDrivePermissions = getPermissionsForSharedDrives and driveId and 'permissions' not in f_file
|
|
@@ -56697,12 +56746,8 @@ def printShowFileCounts(users):
|
|
|
56697
56746
|
mimeTypeInfo[f_file['mimeType']]['count'] += 1
|
|
56698
56747
|
mimeTypeInfo[f_file['mimeType']]['size'] += int(f_file.get(sizeField, '0'))
|
|
56699
56748
|
if showLastModification:
|
|
56700
|
-
|
|
56701
|
-
|
|
56702
|
-
userLastModification['lastModifiedFileName'] = _stripControlCharsFromName(f_file['name'])
|
|
56703
|
-
userLastModification['lastModifiedTime'] = f_file['modifiedTime']
|
|
56704
|
-
userLastModification['lastModifyingUser'] = f_file['lastModifyingUser'].get('emailAddress',
|
|
56705
|
-
f_file['lastModifyingUser'].get('displayName', UNKNOWN))
|
|
56749
|
+
_checkUpdateLastModifiction(f_file, userLastModification)
|
|
56750
|
+
_getLastModificationPath(drive, userLastModification, pathDelimiter)
|
|
56706
56751
|
showMimeTypeInfo(user, mimeTypeInfo, sharedDriveId, sharedDriveName, userLastModification, i, count)
|
|
56707
56752
|
if showLastModification and userLastModification['lastModifiedTime'] > summaryLastModification['lastModifiedTime']:
|
|
56708
56753
|
summaryLastModification = userLastModification.copy()
|
|
@@ -56726,6 +56771,110 @@ def printShowFileCounts(users):
|
|
|
56726
56771
|
if csvPF:
|
|
56727
56772
|
csvPF.writeCSVfile('Drive File Counts')
|
|
56728
56773
|
|
|
56774
|
+
# gam <UserTypeEntity> print drivelastmodification [todrive <ToDriveAttribute>*]
|
|
56775
|
+
# [select <SharedDriveEntity>]
|
|
56776
|
+
# [pathdelimiter <Character>]
|
|
56777
|
+
# (addcsvdata <FieldName> <String>)*
|
|
56778
|
+
# gam <UserTypeEntity> show drivelastmodification
|
|
56779
|
+
# [select <SharedDriveEntity>]
|
|
56780
|
+
# [pathdelimiter <Character>]
|
|
56781
|
+
def printShowDrivelastModifications(users):
|
|
56782
|
+
def showLastModificationInfo(user, sharedDriveId, sharedDriveName, lastModification, i, count):
|
|
56783
|
+
if not csvPF:
|
|
56784
|
+
if sharedDriveId:
|
|
56785
|
+
kvList = [Ent.USER, user, Ent.SHAREDDRIVE, f'{sharedDriveName} ({sharedDriveId})']
|
|
56786
|
+
else:
|
|
56787
|
+
kvList = [Ent.USER, user]
|
|
56788
|
+
printEntity(kvList, i, count)
|
|
56789
|
+
Ind.Increment()
|
|
56790
|
+
_showLastModification(lastModification)
|
|
56791
|
+
Ind.Decrement()
|
|
56792
|
+
else:
|
|
56793
|
+
if sharedDriveId:
|
|
56794
|
+
row = {'User': user, 'id': sharedDriveId, 'name': sharedDriveName}
|
|
56795
|
+
else:
|
|
56796
|
+
row = {'User': user}
|
|
56797
|
+
_updateLastModificationRow(row, lastModification)
|
|
56798
|
+
if addCSVData:
|
|
56799
|
+
row.update(addCSVData)
|
|
56800
|
+
csvPF.WriteRowTitles(row)
|
|
56801
|
+
|
|
56802
|
+
csvPF = CSVPrintFile() if Act.csvFormat() else None
|
|
56803
|
+
fieldsList = ['id', 'driveId', 'name', 'mimeType', 'lastModifyingUser', 'modifiedTime', 'parents']
|
|
56804
|
+
DLP = DriveListParameters({'allowChoose': False, 'allowCorpora': False, 'allowQuery': False, 'mimeTypeInQuery': True})
|
|
56805
|
+
pathDelimiter = '/'
|
|
56806
|
+
sharedDriveId = sharedDriveName = ''
|
|
56807
|
+
fileIdEntity = {}
|
|
56808
|
+
addCSVData = {}
|
|
56809
|
+
while Cmd.ArgumentsRemaining():
|
|
56810
|
+
myarg = getArgument()
|
|
56811
|
+
if csvPF and myarg == 'todrive':
|
|
56812
|
+
csvPF.GetTodriveParameters()
|
|
56813
|
+
elif myarg == 'select':
|
|
56814
|
+
if fileIdEntity:
|
|
56815
|
+
usageErrorExit(Msg.CAN_NOT_BE_SPECIFIED_MORE_THAN_ONCE.format('select'))
|
|
56816
|
+
fileIdEntity = getSharedDriveEntity()
|
|
56817
|
+
elif myarg == 'pathdelimiter':
|
|
56818
|
+
pathDelimiter = getCharacter()
|
|
56819
|
+
elif csvPF and myarg == 'addcsvdata':
|
|
56820
|
+
k = getString(Cmd.OB_STRING)
|
|
56821
|
+
addCSVData[k] = getString(Cmd.OB_STRING, minLen=0)
|
|
56822
|
+
else:
|
|
56823
|
+
unknownArgumentExit()
|
|
56824
|
+
if not fileIdEntity:
|
|
56825
|
+
fileIdEntity = DLP.GetFileIdEntity()
|
|
56826
|
+
if not fileIdEntity.get('shareddrive'):
|
|
56827
|
+
btkwargs = DLP.kwargs
|
|
56828
|
+
else:
|
|
56829
|
+
btkwargs = fileIdEntity['shareddrive']
|
|
56830
|
+
fieldsList.append('driveId')
|
|
56831
|
+
DLP.Finalize(fileIdEntity)
|
|
56832
|
+
if csvPF:
|
|
56833
|
+
sortTitles = ['User', 'id', 'name'] if fileIdEntity.get('shareddrive') else ['User']
|
|
56834
|
+
sortTitles.extend(['lastModifiedFileId', 'lastModifiedFileName',
|
|
56835
|
+
'lastModifiedFileMimeType', 'lastModifiedFilePath',
|
|
56836
|
+
'lastModifyingUser', 'lastModifiedTime'])
|
|
56837
|
+
if addCSVData:
|
|
56838
|
+
sortTitles.extend(sorted(addCSVData.keys()))
|
|
56839
|
+
csvPF.SetTitles(sortTitles)
|
|
56840
|
+
csvPF.SetSortAllTitles()
|
|
56841
|
+
pagesFields = getItemFieldsFromFieldsList('files', fieldsList)
|
|
56842
|
+
i, count, users = getEntityArgument(users)
|
|
56843
|
+
for user in users:
|
|
56844
|
+
i += 1
|
|
56845
|
+
user, drive = _validateUserSharedDrive(user, i, count, fileIdEntity)
|
|
56846
|
+
if not drive:
|
|
56847
|
+
continue
|
|
56848
|
+
sharedDriveId = fileIdEntity.get('shareddrive', {}).get('driveId', '')
|
|
56849
|
+
sharedDriveName = _getSharedDriveNameFromId(sharedDriveId) if sharedDriveId else ''
|
|
56850
|
+
userLastModification = _initLastModification()
|
|
56851
|
+
gettingEntity = _getGettingEntity(user, fileIdEntity)
|
|
56852
|
+
printGettingAllEntityItemsForWhom(Ent.DRIVE_FILE_OR_FOLDER, gettingEntity, i, count)
|
|
56853
|
+
try:
|
|
56854
|
+
feed = yieldGAPIpages(drive.files(), 'list', 'files',
|
|
56855
|
+
pageMessage=getPageMessageForWhom(),
|
|
56856
|
+
throwReasons=GAPI.DRIVE_USER_THROW_REASONS+[GAPI.INVALID, GAPI.BAD_REQUEST, GAPI.FILE_NOT_FOUND,
|
|
56857
|
+
GAPI.NOT_FOUND, GAPI.TEAMDRIVE_MEMBERSHIP_REQUIRED],
|
|
56858
|
+
retryReasons=[GAPI.UNKNOWN_ERROR],
|
|
56859
|
+
fields=pagesFields, pageSize=GC.Values[GC.DRIVE_MAX_RESULTS], **btkwargs)
|
|
56860
|
+
for files in feed:
|
|
56861
|
+
for f_file in files:
|
|
56862
|
+
_checkUpdateLastModifiction(f_file, userLastModification)
|
|
56863
|
+
_getLastModificationPath(drive, userLastModification, pathDelimiter)
|
|
56864
|
+
showLastModificationInfo(user, sharedDriveId, sharedDriveName, userLastModification, i, count)
|
|
56865
|
+
except (GAPI.invalid, GAPI.badRequest) as e:
|
|
56866
|
+
entityActionFailedWarning([Ent.USER, user, Ent.DRIVE_FILE_OR_FOLDER, None], str(e), i, count)
|
|
56867
|
+
continue
|
|
56868
|
+
except GAPI.fileNotFound:
|
|
56869
|
+
printGotEntityItemsForWhom(0)
|
|
56870
|
+
except (GAPI.notFound, GAPI.teamDriveMembershipRequired) as e:
|
|
56871
|
+
entityActionFailedWarning([Ent.USER, user, Ent.SHAREDDRIVE_ID, sharedDriveId], str(e), i, count)
|
|
56872
|
+
except (GAPI.serviceNotAvailable, GAPI.authError, GAPI.domainPolicy) as e:
|
|
56873
|
+
userDriveServiceNotEnabledWarning(user, str(e), i, count)
|
|
56874
|
+
continue
|
|
56875
|
+
if csvPF:
|
|
56876
|
+
csvPF.writeCSVfile('Drive File Last Modification')
|
|
56877
|
+
|
|
56729
56878
|
DISKUSAGE_SHOW_CHOICES = {'all', 'summary', 'summaryandtrash'}
|
|
56730
56879
|
|
|
56731
56880
|
# gam <UserTypeEntity> print diskusage <DriveFileEntity> [todrive <ToDriveAttribute>*]
|
|
@@ -76543,6 +76692,7 @@ USER_COMMANDS_WITH_OBJECTS = {
|
|
|
76543
76692
|
Cmd.ARG_DRIVEFILEACL: printShowDriveFileACLs,
|
|
76544
76693
|
Cmd.ARG_DRIVELABEL: printShowDriveLabels,
|
|
76545
76694
|
Cmd.ARG_DRIVELABELPERMISSION: printShowDriveLabelPermissions,
|
|
76695
|
+
Cmd.ARG_DRIVELASTMODIFICATION: printShowDrivelastModifications,
|
|
76546
76696
|
Cmd.ARG_DRIVESETTINGS: printShowDriveSettings,
|
|
76547
76697
|
Cmd.ARG_EMPTYDRIVEFOLDERS: printEmptyDriveFolders,
|
|
76548
76698
|
Cmd.ARG_EVENT: printShowCalendarEvents,
|
|
@@ -76650,6 +76800,7 @@ USER_COMMANDS_WITH_OBJECTS = {
|
|
|
76650
76800
|
Cmd.ARG_DRIVEFILEACL: printShowDriveFileACLs,
|
|
76651
76801
|
Cmd.ARG_DRIVELABEL: printShowDriveLabels,
|
|
76652
76802
|
Cmd.ARG_DRIVELABELPERMISSION: printShowDriveLabelPermissions,
|
|
76803
|
+
Cmd.ARG_DRIVELASTMODIFICATION: printShowDrivelastModifications,
|
|
76653
76804
|
Cmd.ARG_DRIVESETTINGS: printShowDriveSettings,
|
|
76654
76805
|
Cmd.ARG_EVENT: printShowCalendarEvents,
|
|
76655
76806
|
Cmd.ARG_FILECOMMENT: printShowFileComments,
|
|
@@ -76874,13 +77025,14 @@ USER_COMMANDS_OBJ_ALIASES = {
|
|
|
76874
77025
|
Cmd.ARG_DOMAINCONTACT: Cmd.ARG_PEOPLECONTACT,
|
|
76875
77026
|
Cmd.ARG_DOMAINCONTACTS: Cmd.ARG_PEOPLECONTACT,
|
|
76876
77027
|
Cmd.ARG_DRIVEFILEACLS: Cmd.ARG_DRIVEFILEACL,
|
|
76877
|
-
Cmd.ARG_FILEDRIVELABELS: Cmd.ARG_FILEDRIVELABEL,
|
|
76878
77028
|
Cmd.ARG_DRIVEFILESHORTCUTS: Cmd.ARG_DRIVEFILESHORTCUT,
|
|
76879
77029
|
Cmd.ARG_DRIVELABELS: Cmd.ARG_DRIVELABEL,
|
|
76880
77030
|
Cmd.ARG_DRIVELABELPERMISSIONS: Cmd.ARG_DRIVELABELPERMISSION,
|
|
77031
|
+
Cmd.ARG_DRIVELASTMODIFICATIONS: Cmd.ARG_DRIVELASTMODIFICATION,
|
|
76881
77032
|
Cmd.ARG_EVENTS: Cmd.ARG_EVENT,
|
|
76882
77033
|
Cmd.ARG_FILECOMMENTS: Cmd.ARG_FILECOMMENT,
|
|
76883
77034
|
Cmd.ARG_FILECOUNTS: Cmd.ARG_FILECOUNT,
|
|
77035
|
+
Cmd.ARG_FILEDRIVELABELS: Cmd.ARG_FILEDRIVELABEL,
|
|
76884
77036
|
Cmd.ARG_FILEPATHS: Cmd.ARG_FILEPATH,
|
|
76885
77037
|
Cmd.ARG_FILEREVISIONS: Cmd.ARG_FILEREVISION,
|
|
76886
77038
|
Cmd.ARG_FILESHARECOUNTS: Cmd.ARG_FILESHARECOUNT,
|
gam/gamlib/glclargs.py
CHANGED
|
@@ -579,6 +579,8 @@ class GamCLArgs():
|
|
|
579
579
|
ARG_DRIVELABELS = 'drivelabels'
|
|
580
580
|
ARG_DRIVELABELPERMISSION = 'drivelabelpermission'
|
|
581
581
|
ARG_DRIVELABELPERMISSIONS = 'drivelabelpermissions'
|
|
582
|
+
ARG_DRIVELASTMODIFICATION = 'drivelastmodification'
|
|
583
|
+
ARG_DRIVELASTMODIFICATIONS = 'drivelastmodifications'
|
|
582
584
|
ARG_DRIVESETTINGS = 'drivesettings'
|
|
583
585
|
ARG_DRIVETRASH = 'drivetrash'
|
|
584
586
|
ARG_EMPTYDRIVEFOLDERS = 'emptydrivefolders'
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
gam/__init__.py,sha256=
|
|
1
|
+
gam/__init__.py,sha256=FKh8G6PP-PAQ2Nxej7xnFRZmPMW-ElcZ9X29HSSs8S4,3492291
|
|
2
2
|
gam/__main__.py,sha256=amz0-959ph6zkZKqjaar4n60yho-T37w6qWI36qx0CA,1049
|
|
3
3
|
gam/cacerts.pem,sha256=nJuWha0xm5dHw_5ptGphwRoO-r36Ccpqiww9pCEDbSc,67484
|
|
4
4
|
gam/cbcm-v1.1beta1.json,sha256=xO5XloCQQULmPbFBx5bckdqmbLFQ7sJ2TImhE1ysDIY,19439
|
|
@@ -25,7 +25,7 @@ gam/gamlib/__init__.py,sha256=z5mF-y0j8pm-YNFBaiuxB4M_GAUPG-cXWwrhYwrVReM,679
|
|
|
25
25
|
gam/gamlib/glaction.py,sha256=1Il_HrChVnPkzZwiZs5au4mFQVtq4K1Z42uIuR6qdnI,9419
|
|
26
26
|
gam/gamlib/glapi.py,sha256=EAQXkaM13t6jjh9vL4eHJqIZRI5kmzeneiFs5xcWXfg,34304
|
|
27
27
|
gam/gamlib/glcfg.py,sha256=cV011FpIWge4oi5_dJrdof66vUqX6UCvTGWWTNVmYEg,28055
|
|
28
|
-
gam/gamlib/glclargs.py,sha256=
|
|
28
|
+
gam/gamlib/glclargs.py,sha256=9i8FVqQmidkgazG7sOKrY-JeyhK8JioxVZMyClgCafY,42306
|
|
29
29
|
gam/gamlib/glentity.py,sha256=ZLbyMl9NhN-MBf9Rxmho2dBYeS4SNLMctpeaKFZSbQ4,33801
|
|
30
30
|
gam/gamlib/glgapi.py,sha256=xk3pEaIE-zHrTNCn5rJYERqqpbN55E1wXlKoqvWP44E,39232
|
|
31
31
|
gam/gamlib/glgdata.py,sha256=weRppttWm6uRyqtBoGPKoHiNZ2h28nhfUV4J_mbCszY,2707
|
|
@@ -65,8 +65,8 @@ gam/googleapiclient/discovery_cache/base.py,sha256=yCDPtxnbNN-p5_9fzBacC6P3wcUPl
|
|
|
65
65
|
gam/googleapiclient/discovery_cache/file_cache.py,sha256=sim3Mg4HgRYo3vX75jvcKy_aV568EvIrtBfvfbw-044,4774
|
|
66
66
|
gam/iso8601/__init__.py,sha256=Z2PsYbXgAH5a5xzUvgczCboPzqWpm65kRcIngCnhViU,1218
|
|
67
67
|
gam/iso8601/iso8601.py,sha256=Li2FHZ4sBTWuthuQhyCvmvj0j6At8JbGzkSv2fc2RHU,4384
|
|
68
|
-
gam7-7.6.
|
|
69
|
-
gam7-7.6.
|
|
70
|
-
gam7-7.6.
|
|
71
|
-
gam7-7.6.
|
|
72
|
-
gam7-7.6.
|
|
68
|
+
gam7-7.6.3.dist-info/METADATA,sha256=MazHA6rGk3zT2dQ2lCwJOJV6IQoMchyZdepmc61ojZs,2888
|
|
69
|
+
gam7-7.6.3.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
|
70
|
+
gam7-7.6.3.dist-info/entry_points.txt,sha256=HVUM5J7dA8YwvJfG30jiLefR19ExMs387TWugWd9sf4,42
|
|
71
|
+
gam7-7.6.3.dist-info/licenses/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
|
|
72
|
+
gam7-7.6.3.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|