diff --git a/docs/GamUpdates.md b/docs/GamUpdates.md index a03c827d..d6d8ce55 100644 --- a/docs/GamUpdates.md +++ b/docs/GamUpdates.md @@ -10,6 +10,10 @@ 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.72.01 + +Improved commands to display drive file comments. + ### 6.72.00 Added commands to display drive file comments. diff --git a/docs/How-to-Upgrade-from-Standard-GAM.md b/docs/How-to-Upgrade-from-Standard-GAM.md index c74df07b..229553a1 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.72.00 - https://github.com/taers232c/GAMADV-XTD3 - pythonsource +GAMADV-XTD3 6.72.01 - https://github.com/taers232c/GAMADV-XTD3 - pythonsource Ross Scroggs Python 3.12.2 64-bit final MacOS Sonoma 14.2.1 x86_64 @@ -1006,7 +1006,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.72.00 - https://github.com/taers232c/GAMADV-XTD3 - pythonsource +GAMADV-XTD3 6.72.01 - 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/Users-Drive-Comments.md b/docs/Users-Drive-Comments.md index 3250a375..76c7706b 100644 --- a/docs/Users-Drive-Comments.md +++ b/docs/Users-Drive-Comments.md @@ -25,15 +25,15 @@ author.photolink ::= - replies.action| - replies.author| - replies.author.| - replies.content| - replies.createddate|createdtime| - replies.deleted| - replies.htmlcontent| - replies.id| - replies.modifieddate|modifiedtime + reply.action| + reply.author| + reply.author.| + reply.content| + reply.createddate|createdtime| + reply.deleted| + reply.htmlcontent| + reply.id| + reply.modifieddate|modifiedtime ::= action| @@ -47,7 +47,7 @@ id| modifieddate|modifiedtime| quotedfilecontent| - replies| + reply|replies| resolved ::= "(,)*" ``` @@ -100,3 +100,58 @@ the quote character itself, the column delimiter (comma by default) and new-line When using the `formatjson` option, double quotes are used extensively in the data resulting in hard to read/process output. The `quotechar ` option allows you to choose an alternate quote character, single quote for instance, that makes for readable/processable output. `quotechar` defaults to `gam.cfg/csv_output_quote_char`. When uploading CSV files to Google, double quote `"` should be used. + +### Example +``` +# Get files that may have comments +$ gam redirect csv ./CheckForComments.csv user testsimple@domain.com print filelist showmimetype gdoc,gpresentation,gsheet fields id,name,mimetype +Getting all Drive Files/Folders that match query ('me' in owners and (mimeType = 'application/vnd.google-apps.presentation' or mimeType = 'application/vnd.google-apps.spreadsheet' or mimeType = 'application/vnd.google-apps.document')) for testsimple@domain.com +Got 131 Drive Files/Folders that matched query ('me' in owners and (mimeType = 'application/vnd.google-apps.presentation' or mimeType = 'application/vnd.google-apps.spreadsheet' or mimeType = 'application/vnd.google-apps.document')) for testsimple@domain.com... + +# Display file comments +$ gam redirect csv ./FilesWithComments.csv multiprocess csv CheckForComments.csv gam user "~Owner" print filecomments "~id" addcsvdata fileName "~name" addcsvdata mimeType "~mimeType" fields author.displayName,author.me,content,createdTime,deleted,modifiedTime,resolved,reply.author.displayName,reply.author.me,reply.content,reply.createdTime,reply.deleted,reply.modifiedTime +2024-03-24T08:04:46.235-07:00,0/131,Using 10 processes... +2024-03-24T08:04:58.122-07:00,0,Processing item 100/131 +2024-03-24T08:05:01.345-07:00,0,Processing item 131/131 +2024-03-24T08:07:11.731-07:00,0/131,Processing complete + +$ more FilesWithCommnts.csv +User,fileId,fileName,mimeType,commentId,replyId,author.displayName,author.me,content,createdTime,deleted,modifiedTime,resolved,reply.author.displayName,reply.author.me,reply.content,reply.createdTime,reply.deleted,reply.modifiedTime +testsimple@domain.com,xxx,TS Doc,application/vnd.google-apps.document,AAABJFedwm0,,Test-Simple,True,XXX Comment,2024-03-14T11:34:39-07:00,False,2024-03-14T11:34:39-07:00,False,,,,,, +testsimple@domain.com,xxx,TS Doc,application/vnd.google-apps.document,AAABJFedwkw,,Test-Simple,True,Grack Comment,2024-03-14T11:26:30-07:00,False,2024-03-14T11:26:30-07:00,False,,,,,, +testsimple@domain.com,xxx,TS Doc,application/vnd.google-apps.document,AAABJFedwkY,,Test-Simple,True,Again commnt,2024-03-14T11:24:13-07:00,False,2024-03-14T11:24:13-07:00,False,,,,,, +testsimple@domain.com,xxx,TS Doc,application/vnd.google-apps.document,AAABJFedwkQ,,Test-Simple,True,More Comment,2024-03-14T11:23:48-07:00,False,2024-03-14T11:23:48-07:00,False,,,,,, +testsimple@domain.com,xxx,TS Doc,application/vnd.google-apps.document,AAABJFedwkA,,Test-Simple,True,Comment 8,2024-03-14T11:23:14-07:00,False,2024-03-14T11:34:01-07:00,False,,,,,, +testsimple@domain.com,xxx,TS Doc,application/vnd.google-apps.document,AAABJFedwj4,,Test-Simple,True,Comment 7,2024-03-14T11:23:05-07:00,False,2024-03-14T11:23:05-07:00,False,,,,,, +testsimple@domain.com,xxx,TS Doc,application/vnd.google-apps.document,AAABJFedwj0,,Test-Simple,True,Comment 6,2024-03-14T11:22:55-07:00,False,2024-03-14T11:22:55-07:00,False,,,,,, +testsimple@domain.com,xxx,TS Doc,application/vnd.google-apps.document,AAABJFedwjs,,Test-Simple,True,Comment 5,2024-03-14T11:22:38-07:00,False,2024-03-14T11:22:38-07:00,False,,,,,, +testsimple@domain.com,xxx,TS Doc,application/vnd.google-apps.document,AAABJFedwjo,,Test-Simple,True,Comment 4,2024-03-14T11:22:19-07:00,False,2024-03-14T11:22:19-07:00,False,,,,,, +testsimple@domain.com,xxx,TS Doc,application/vnd.google-apps.document,AAABJFedtKQ,,Test-Simple,True,End Comment,2024-03-14T10:32:16-07:00,False,2024-03-14T10:32:16-07:00,False,,,,,, +testsimple@domain.com,xxx,TS Doc,application/vnd.google-apps.document,AAABJFedtKI,AAABJFedwik,Test-Simple,True,My first comment,2024-03-14T10:32:03-07:00,False,2024-03-14T11:15:05-07:00,False,Test-Simple,True,My first reply,2024-03-14T11:14:13-07:00,False,2024-03-14T11:14:13-07:00 +testsimple@domain.com,xxx,TS Doc,application/vnd.google-apps.document,AAABJFedtKI,AAABJFedwiw,Test-Simple,True,My first comment,2024-03-14T10:32:03-07:00,False,2024-03-14T11:15:05-07:00,False,Test-Simple,True,Yet another reply,2024-03-14T11:15:05-07:00,False,2024-03-14T11:15:05-07:00 +testsimple@domain.com,yyy,TS Sheet,application/vnd.google-apps.spreadsheet,AAABJM6zbc0,,Test-Simple,True,Sheet Comment,2024-03-14T20:43:18-07:00,False,2024-03-14T20:43:18-07:00,False,,,,,, +testsimple@domain.com,zzz,TS Pres,application/vnd.google-apps.presentation,AAABJLy5DpA,,Test-Simple,True,Presentation Comment,2024-03-14T20:42:48-07:00,False,2024-03-14T20:42:48-07:00,False,,,,,, + +$ gam redirect csv ./FilesWithComments.csv multiprocess csv CheckForComments.csv gam user "~Owner" print filecomments "~id" addcsvdata fileName "~name" addcsvdata mimeType "~mimeType" fields author.displayName,author.me,content,createdTime,deleted,modifiedTime,resolved,reply.author.displayName,reply.author.me,reply.content,reply.createdTime,reply.deleted,,reply.modifiedTime +2024-03-24T08:04:46.235-07:00,0/131,Using 10 processes... +2024-03-24T08:04:58.122-07:00,0,Processing item 100/131 +2024-03-24T08:05:01.345-07:00,0,Processing item 131/131 +2024-03-24T08:07:11.731-07:00,0/131,Processing complete + + +# Display file comment counts +$ gam redirect csv ./FileCommentCounts.csv multiprocess csv CheckForComments.csv gam user "~Owner" print filecomments "~id" addcsvdata fileName "~name" addcsvdata mimeType "~mimeType" countsonly +2024-03-24T07:51:16.881-07:00,0/131,Using 10 processes... +2024-03-24T07:51:28.909-07:00,0,Processing item 100/131 +2024-03-24T07:51:32.241-07:00,0,Processing item 131/131 +2024-03-24T07:51:37.404-07:00,0/131,Processing complete + +$ more FileCommentCounts.csv +User,fileId,fileName,mimeType,comments,replies +... +testsimple@domain.com,yyy,TS Sheet,application/vnd.google-apps.spreadsheet,1,0 +testsimple@domain.com,aaa,ViewTest,application/vnd.google-apps.document,0,0 +testsimple@domain.com,xxx,TS Doc,application/vnd.google-apps.document,11,2 +testsimple@domain.com,zzz,TS Pres,application/vnd.google-apps.presentation,1,0 +... +``` \ No newline at end of file diff --git a/docs/Version-and-Help.md b/docs/Version-and-Help.md index 73a26fea..d1492ce9 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.72.00 - https://github.com/taers232c/GAMADV-XTD3 - pythonsource +GAMADV-XTD3 6.72.01 - 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.72.00 - https://github.com/taers232c/GAMADV-XTD3 - pythonsource +GAMADV-XTD3 6.72.01 - 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.72.00 - https://github.com/taers232c/GAMADV-XTD3 - pythonsource +GAMADV-XTD3 6.72.01 - 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.72.00 + Latest: 6.72.01 echo $? 1 ``` @@ -72,7 +72,7 @@ echo $? Print the current version number without details ``` gam version simple -6.72.00 +6.72.01 ``` 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.72.00 - https://github.com/taers232c/GAMADV-XTD3 +GAM 6.72.01 - 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/GamCommands.txt b/src/GamCommands.txt index 155fa1e7..3e1df91f 100644 --- a/src/GamCommands.txt +++ b/src/GamCommands.txt @@ -6362,15 +6362,15 @@ gam print ownership |(drivefilename ) [todrive ::= - replies.action| - replies.author| - replies.author.| - replies.content| - replies.createddate|createdtime| - replies.deleted| - replies.htmlcontent| - replies.id| - replies.modifieddate|modifiedtime + reply.action| + reply.author| + reply.author.| + reply.content| + reply.createddate|createdtime| + reply.deleted| + reply.htmlcontent| + reply.id| + reply.modifieddate|modifiedtime ::= action| @@ -6384,7 +6384,7 @@ gam print ownership |(drivefilename ) [todrive ::= "(,)*" diff --git a/src/GamUpdate.txt b/src/GamUpdate.txt index 7b89eaab..e4835b14 100644 --- a/src/GamUpdate.txt +++ b/src/GamUpdate.txt @@ -2,6 +2,10 @@ Merged GAM-Team version +6.72.01 + +Improved commands to display drive file comments. + 6.72.00 Added commands to display drive file comments. diff --git a/src/gam/__init__.py b/src/gam/__init__.py index 57cb32fe..18790fd4 100755 --- a/src/gam/__init__.py +++ b/src/gam/__init__.py @@ -53936,6 +53936,7 @@ FILECOMMENTS_FIELDS_CHOICE_MAP = { 'modifieddate': 'modifiedTime', 'modifiedtime': 'modifiedTime', 'quotedfilecontent': 'quotedFileContent', + 'reply': 'replies', 'replies': 'replies', 'resolved': 'resolved', } @@ -53963,6 +53964,7 @@ FILECOMMENTS_REPLIES_SUBFIELDS_CHOICE_MAP = { FILECOMMENTS_SUBFIELDS_CHOICE_MAP = { 'author': FILECOMMENTS_AUTHOR_SUBFIELDS_CHOICE_MAP, + 'reply': FILECOMMENTS_REPLIES_SUBFIELDS_CHOICE_MAP, 'replies': FILECOMMENTS_REPLIES_SUBFIELDS_CHOICE_MAP, } @@ -54027,15 +54029,19 @@ def _showComment(comment, stripPhotoLinks, timeObjects, i=0, count=0, FJQC=None) # (addcsvdata )* # [formatjson [quotechar ]] def printShowFileComments(users): - def _printComment(comment, commentId, baserow): + def _printComment(comment, commentId, replyId, baserow): row = flattenJSON(comment, flattened=baserow.copy(), timeObjects=timeObjects) row['commentId'] = commentId + row['replyId'] = replyId if not FJQC.formatJSON: csvPF.WriteRowTitles(row) elif csvPF.CheckRowTitles(row): row = baserow.copy() row['commentId'] = commentId comment['id'] = commentId + row['replyId'] = replyId + if replyId: + comment['reply']['id'] = replyId row['JSON'] = json.dumps(cleanJSON(comment, timeObjects=timeObjects), ensure_ascii=False, sort_keys=True) csvPF.WriteRowNoFilter(row) @@ -54146,12 +54152,13 @@ def printShowFileComments(users): commentId = comment.pop('id') replies = comment.pop('replies') if not replies: - _printComment(comment, commentId, baserow) + _printComment(comment, commentId, '', baserow) else: for reply in replies: + replyId = reply.pop('id') + baserow['replyId'] = replyId comment['reply'] = reply - baserow['replyId'] = reply['id'] - _printComment(comment, commentId, baserow) + _printComment(comment, commentId, replyId, baserow) Ind.Decrement() if csvPF: csvPF.SetIndexedTitles(FILECOMMENTS_INDEXED_TITLES)