gam7 7.27.1__py3-none-any.whl → 7.27.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 +61 -32
- gam/gamlib/glmsgs.py +1 -1
- {gam7-7.27.1.dist-info → gam7-7.27.3.dist-info}/METADATA +1 -1
- {gam7-7.27.1.dist-info → gam7-7.27.3.dist-info}/RECORD +7 -7
- {gam7-7.27.1.dist-info → gam7-7.27.3.dist-info}/WHEEL +0 -0
- {gam7-7.27.1.dist-info → gam7-7.27.3.dist-info}/entry_points.txt +0 -0
- {gam7-7.27.1.dist-info → gam7-7.27.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.27.
|
|
28
|
+
__version__ = '7.27.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
|
|
@@ -9182,7 +9182,7 @@ def showJSON(showName, showValue, skipObjects=None, timeObjects=None,
|
|
|
9182
9182
|
return
|
|
9183
9183
|
if objectName is not None:
|
|
9184
9184
|
printJSONKey(objectName)
|
|
9185
|
-
|
|
9185
|
+
subObjectKey = dictObjectsKey.get(objectName)
|
|
9186
9186
|
if isinstance(objectValue, list):
|
|
9187
9187
|
if objectName in simpleLists:
|
|
9188
9188
|
printJSONValue(' '.join(objectValue))
|
|
@@ -26506,14 +26506,18 @@ CHAT_TIME_OBJECTS = {'createTime', 'deleteTime', 'eventTime', 'lastActiveTime',
|
|
|
26506
26506
|
def _showChatItem(citem, entityType, FJQC, i=0, count=0):
|
|
26507
26507
|
if entityType == Ent.CHAT_SPACE:
|
|
26508
26508
|
_cleanChatSpace(citem)
|
|
26509
|
+
dictObjectsKey = {None: 'displayName'}
|
|
26509
26510
|
elif entityType == Ent.CHAT_MESSAGE:
|
|
26510
26511
|
_cleanChatMessage(citem)
|
|
26512
|
+
dictObjectsKey = {None: 'text'}
|
|
26513
|
+
else:
|
|
26514
|
+
dictObjectsKey={}
|
|
26511
26515
|
if FJQC.formatJSON:
|
|
26512
26516
|
printLine(json.dumps(cleanJSON(citem, timeObjects=CHAT_TIME_OBJECTS), ensure_ascii=False, sort_keys=True))
|
|
26513
26517
|
return
|
|
26514
26518
|
printEntity([entityType, citem['name']], i, count)
|
|
26515
26519
|
Ind.Increment()
|
|
26516
|
-
showJSON(None, citem, timeObjects=CHAT_TIME_OBJECTS)
|
|
26520
|
+
showJSON(None, citem, timeObjects=CHAT_TIME_OBJECTS, dictObjectsKey=dictObjectsKey)
|
|
26517
26521
|
Ind.Decrement()
|
|
26518
26522
|
|
|
26519
26523
|
def _printChatItem(user, citem, parent, entityType, csvPF, FJQC, addCSVData=None):
|
|
@@ -26772,14 +26776,14 @@ def getChatSpaceParameters(myarg, body, typeChoicesMap, updateMask):
|
|
|
26772
26776
|
|
|
26773
26777
|
CHAT_MEMBER_ROLE_MAP = {
|
|
26774
26778
|
'member': 'ROLE_MEMBER',
|
|
26775
|
-
'manager': '
|
|
26776
|
-
'owner': '
|
|
26779
|
+
'manager': 'ROLE_ASSISTANT_MANAGER',
|
|
26780
|
+
'owner': 'ROLE_MANAGER',
|
|
26777
26781
|
}
|
|
26778
26782
|
|
|
26779
26783
|
CHAT_ROLE_ENTITY_TYPE_MAP = {
|
|
26780
26784
|
'ROLE_MEMBER': Ent.CHAT_MEMBER_USER,
|
|
26781
|
-
'
|
|
26782
|
-
'
|
|
26785
|
+
'ROLE_ASSISTANT_MANAGER': Ent.CHAT_MANAGER_USER,
|
|
26786
|
+
'ROLE_MANAGER': Ent.CHAT_OWNER_USER,
|
|
26783
26787
|
}
|
|
26784
26788
|
|
|
26785
26789
|
CHAT_MEMBER_TYPE_MAP = {
|
|
@@ -26913,7 +26917,8 @@ CHAT_UPDATE_SPACE_TYPE_MAP = {
|
|
|
26913
26917
|
}
|
|
26914
26918
|
|
|
26915
26919
|
CHAT_SPACE_ROLE_PERMISSIONS_MAP = {
|
|
26916
|
-
'
|
|
26920
|
+
'owners': 'managersAllowed',
|
|
26921
|
+
'managers': 'assistantManagersAllowed',
|
|
26917
26922
|
'members': 'membersAllowed',
|
|
26918
26923
|
}
|
|
26919
26924
|
|
|
@@ -26933,13 +26938,13 @@ CHAT_UPDATE_SPACE_PERMISSIONS_MAP = {
|
|
|
26933
26938
|
# [type space]
|
|
26934
26939
|
# [description <String>] [guidelines|rules <String>]
|
|
26935
26940
|
# [history <Boolean>])
|
|
26936
|
-
# managemembersandgroups managers|members
|
|
26937
|
-
# modifyspacedetails managers|members
|
|
26938
|
-
# togglehistory managers|members
|
|
26939
|
-
# useatmentionall managers|members
|
|
26940
|
-
# manageapps managers|members
|
|
26941
|
-
# managewebhooks managers|members
|
|
26942
|
-
# replymessages managers|members
|
|
26941
|
+
# [managemembersandgroups owners|managers|members]
|
|
26942
|
+
# [modifyspacedetails owners|managers|members]
|
|
26943
|
+
# [togglehistory owners|managers|members]
|
|
26944
|
+
# [useatmentionall owners|managers|members]
|
|
26945
|
+
# [manageapps owners|managers|members]
|
|
26946
|
+
# [managewebhooks owners|managers|members]
|
|
26947
|
+
2# [replymessages owners|managers|members]
|
|
26943
26948
|
# [formatjson]
|
|
26944
26949
|
def updateChatSpace(users):
|
|
26945
26950
|
FJQC = FormatJSONQuoteChar()
|
|
@@ -26957,9 +26962,13 @@ def updateChatSpace(users):
|
|
|
26957
26962
|
body.setdefault('permissionSettings', {})
|
|
26958
26963
|
permissionSetting = CHAT_UPDATE_SPACE_PERMISSIONS_MAP[myarg]
|
|
26959
26964
|
role = getChoice(CHAT_SPACE_ROLE_PERMISSIONS_MAP, mapChoice=True)
|
|
26960
|
-
body['permissionSettings'][permissionSetting] = {
|
|
26965
|
+
body['permissionSettings'][permissionSetting] = {}
|
|
26966
|
+
body['permissionSettings'][permissionSetting][role] = True
|
|
26961
26967
|
if role == 'membersAllowed':
|
|
26962
|
-
body['permissionSettings'][permissionSetting]
|
|
26968
|
+
body['permissionSettings'][permissionSetting]['assistantManagersAllowed'] = True
|
|
26969
|
+
body['permissionSettings'][permissionSetting]['managersAllowed'] = True
|
|
26970
|
+
elif role == 'assistantManagersAllowed':
|
|
26971
|
+
body['permissionSettings'][permissionSetting]['managersAllowed'] = True
|
|
26963
26972
|
updateMask.add(f'permissionSettings.{permissionSetting}')
|
|
26964
26973
|
else:
|
|
26965
26974
|
FJQC.GetFormatJSON(myarg)
|
|
@@ -27333,12 +27342,12 @@ def getGroupMemberID(cd, group, groupList):
|
|
|
27333
27342
|
groupList.append(convertEmailAddressToUID(group, cd, emailType='group'))
|
|
27334
27343
|
|
|
27335
27344
|
# gam <UserTypeEntity> create chatmember <ChatSpace>
|
|
27336
|
-
# [type human|bot] [role member|manager]
|
|
27345
|
+
# [type human|bot] [role member|manager|owner]
|
|
27337
27346
|
# (user <UserItem>)* (members <UserTypeEntity>)*
|
|
27338
27347
|
# (group <GroupItem>)* (groups <GroupEntity>)*
|
|
27339
27348
|
# [formatjson|returnidonly]
|
|
27340
27349
|
# gam <UserItem> create chatmember asadmin <ChatSpace>
|
|
27341
|
-
# [type human|bot] [role member|manager]
|
|
27350
|
+
# [type human|bot] [role member|manager|owner]
|
|
27342
27351
|
# (user <UserItem>)* (members <UserTypeEntity>)*
|
|
27343
27352
|
# (group <GroupItem>)* (groups <GroupEntity>)*
|
|
27344
27353
|
# [formatjson|returnidonly]
|
|
@@ -27467,16 +27476,16 @@ def _deleteChatMembers(chat, kvList, jcount, memberNames, i, count, kwargsUAA):
|
|
|
27467
27476
|
# gam <UserItem> remove chatmember asadmin
|
|
27468
27477
|
# members <ChatMemberList>
|
|
27469
27478
|
# gam <UserTypeEntity> update chatmember <ChatSpace>
|
|
27470
|
-
# role member|manager
|
|
27479
|
+
# role member|manager|owner
|
|
27471
27480
|
# ((user <UserItem>)|(members <UserTypeEntity>))+
|
|
27472
27481
|
# gam <UserTypeEntity> modify chatmember
|
|
27473
|
-
# role member|manager
|
|
27482
|
+
# role member|manager|owner
|
|
27474
27483
|
# members <ChatMemberList>
|
|
27475
27484
|
# gam <UserItem> update chatmember asadmin<ChatSpace>
|
|
27476
|
-
# role member|manager
|
|
27485
|
+
# role member|manager|owner
|
|
27477
27486
|
# ((user <UserItem>)|(members <UserTypeEntity>))+
|
|
27478
27487
|
# gam <UserItem> modify chatmember asadmin
|
|
27479
|
-
# role member|manager
|
|
27488
|
+
# role member|manager|owner
|
|
27480
27489
|
# members <ChatMemberList>
|
|
27481
27490
|
def deleteUpdateChatMember(users):
|
|
27482
27491
|
cd = buildGAPIObject(API.DIRECTORY)
|
|
@@ -27570,7 +27579,7 @@ def deleteUpdateChatMember(users):
|
|
|
27570
27579
|
CHAT_SYNC_PREVIEW_TITLES = ['space', 'member', 'role', 'action', 'message']
|
|
27571
27580
|
|
|
27572
27581
|
# gam <UserTypeEntity> sync chatmembers [asadmin] <ChatSpace>
|
|
27573
|
-
# [role member|manager] [type human|bot]
|
|
27582
|
+
# [role member|manager|owner] [type human|bot]
|
|
27574
27583
|
# [addonly|removeonly]
|
|
27575
27584
|
# [preview [actioncsv]]
|
|
27576
27585
|
# (users <UserTypeEntity>)* (groups <GroupEntity>)*
|
|
@@ -27986,10 +27995,11 @@ def _getChatSenderEmail(cd, sender):
|
|
|
27986
27995
|
sender['email'], _ = convertUIDtoEmailAddressWithType(f'uid:{senderUid}', cd, None, emailTypes=['user'])
|
|
27987
27996
|
|
|
27988
27997
|
def trimChatMessageIfRequired(body):
|
|
27989
|
-
|
|
27990
|
-
|
|
27991
|
-
|
|
27992
|
-
|
|
27998
|
+
if 'text' in body:
|
|
27999
|
+
msgLen = len(body['text'])
|
|
28000
|
+
if msgLen > 4096:
|
|
28001
|
+
stderrWarningMsg(Msg.TRIMMED_MESSAGE_FROM_LENGTH_TO_MAXIMUM.format(msgLen, 4096))
|
|
28002
|
+
body['text'] = body['text'][:4095]
|
|
27993
28003
|
|
|
27994
28004
|
CHAT_MESSAGE_REPLY_OPTION_MAP = {
|
|
27995
28005
|
'fail': 'REPLY_MESSAGE_OR_FAIL',
|
|
@@ -28066,22 +28076,29 @@ def doCreateChatMessage():
|
|
|
28066
28076
|
createChatMessage([None])
|
|
28067
28077
|
|
|
28068
28078
|
# gam [<UserTypeMessage>] update chatmessage name <ChatMessage>
|
|
28069
|
-
# <ChatContent>
|
|
28079
|
+
# [<ChatContent>] [clearattachments <String>]
|
|
28070
28080
|
def updateChatMessage(users):
|
|
28071
28081
|
name = None
|
|
28072
28082
|
body = {}
|
|
28083
|
+
updateMask = []
|
|
28084
|
+
clearMsg = ''
|
|
28073
28085
|
while Cmd.ArgumentsRemaining():
|
|
28074
28086
|
myarg = getArgument()
|
|
28075
28087
|
if myarg == 'name':
|
|
28076
28088
|
name = getString(Cmd.OB_CHAT_MESSAGE)
|
|
28077
28089
|
elif myarg in SORF_TEXT_ARGUMENTS:
|
|
28078
28090
|
body['text'] = getStringOrFile(myarg, minLen=0, unescapeCRLF=True)[0]
|
|
28091
|
+
updateMask.append('text')
|
|
28092
|
+
elif myarg == 'clearattachments':
|
|
28093
|
+
clearMsg = getString(Cmd.OB_STRING, minLen=0)
|
|
28094
|
+
body['attachment'] = []
|
|
28095
|
+
updateMask.append('attachment')
|
|
28079
28096
|
else:
|
|
28080
28097
|
unknownArgumentExit()
|
|
28081
28098
|
if not name:
|
|
28082
28099
|
missingArgumentExit('name')
|
|
28083
|
-
if
|
|
28084
|
-
missingArgumentExit('text
|
|
28100
|
+
if not updateMask:
|
|
28101
|
+
missingArgumentExit('text|textfile|clearattachments')
|
|
28085
28102
|
trimChatMessageIfRequired(body)
|
|
28086
28103
|
i, count, users = getEntityArgument(users)
|
|
28087
28104
|
for user in users:
|
|
@@ -28090,9 +28107,19 @@ def updateChatMessage(users):
|
|
|
28090
28107
|
if not chat:
|
|
28091
28108
|
continue
|
|
28092
28109
|
try:
|
|
28110
|
+
if 'attachment' in updateMask and 'text' not in updateMask:
|
|
28111
|
+
resp = callGAPI(chat.spaces().messages(), 'get',
|
|
28112
|
+
throwReasons=[GAPI.NOT_FOUND, GAPI.INVALID_ARGUMENT, GAPI.PERMISSION_DENIED, GAPI.FAILED_PRECONDITION],
|
|
28113
|
+
name=name, fields='text')
|
|
28114
|
+
body['text'] = resp.get('text', '')
|
|
28115
|
+
if clearMsg:
|
|
28116
|
+
body['text'] += clearMsg
|
|
28117
|
+
elif not body['text']:
|
|
28118
|
+
body['text'] = 'Attachments cleared'
|
|
28119
|
+
updateMask.append('text')
|
|
28093
28120
|
resp = callGAPI(chat.spaces().messages(), 'patch',
|
|
28094
28121
|
throwReasons=[GAPI.NOT_FOUND, GAPI.INVALID_ARGUMENT, GAPI.PERMISSION_DENIED, GAPI.FAILED_PRECONDITION],
|
|
28095
|
-
name=name, updateMask='
|
|
28122
|
+
name=name, updateMask=','.join(updateMask), body=body)
|
|
28096
28123
|
kvList.extend([Ent.CHAT_THREAD, resp['thread']['name']])
|
|
28097
28124
|
entityActionPerformed(kvList, i, count)
|
|
28098
28125
|
except (GAPI.notFound, GAPI.invalidArgument, GAPI.permissionDenied) as e:
|
|
@@ -33001,6 +33028,8 @@ def doCreateGroup(ciGroupsAPI=False):
|
|
|
33001
33028
|
initialGroupConfig = 'WITH_INITIAL_OWNER'
|
|
33002
33029
|
elif ciGroupsAPI and myarg in {'security', 'makesecuritygroup'}:
|
|
33003
33030
|
body['labels'][CIGROUP_SECURITY_LABEL] = ''
|
|
33031
|
+
elif ciGroupsAPI and myarg in ['locked']:
|
|
33032
|
+
body['labels'][CIGROUP_LOCKED_LABEL] = ''
|
|
33004
33033
|
elif myarg == 'verifynotinvitable':
|
|
33005
33034
|
verifyNotInvitable = True
|
|
33006
33035
|
else:
|
gam/gamlib/glmsgs.py
CHANGED
|
@@ -516,7 +516,7 @@ To set up Google Chat for your current project, please go to:
|
|
|
516
516
|
|
|
517
517
|
and follow the instructions at:
|
|
518
518
|
|
|
519
|
-
https://github.com/GAM-team/GAM/wiki/Chat-Bot#set-up-a-chat-bot
|
|
519
|
+
https://github.com/GAM-team/GAM/wiki/Chat-Bot-Setup-Use#set-up-a-chat-bot
|
|
520
520
|
|
|
521
521
|
You'll use projects/{1}/topics/no-topic in Connection settings Cloud Pub/Sub Topic Name
|
|
522
522
|
"""
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
gam/__init__.py,sha256=
|
|
1
|
+
gam/__init__.py,sha256=6tDyyHCVxCJwXYuFC70EhWj4crFEOwmfG7y62BVRL9M,3627187
|
|
2
2
|
gam/__main__.py,sha256=VwEYS7a9vYQPbT6iLduMOoVUJ6p4R-HZgerZQmM1NpE,1307
|
|
3
3
|
gam/cacerts.pem,sha256=DUsVo2XlFYwfkhe3gnxa-Km4Z4noz74hSApXwTT-nQE,44344
|
|
4
4
|
gam/cbcm-v1.1beta1.json,sha256=xO5XloCQQULmPbFBx5bckdqmbLFQ7sJ2TImhE1ysDIY,19439
|
|
@@ -30,7 +30,7 @@ gam/gamlib/glgapi.py,sha256=pdBbwNtnCwFWxJGaP-_3hdTjSNoOCJF2yo76WdQOi1k,40426
|
|
|
30
30
|
gam/gamlib/glgdata.py,sha256=weRppttWm6uRyqtBoGPKoHiNZ2h28nhfUV4J_mbCszY,2707
|
|
31
31
|
gam/gamlib/glglobals.py,sha256=U1eCXHOkWAtwVXG8-0HL4ZzQP0YcbeFlhJxbOa_x1QI,9804
|
|
32
32
|
gam/gamlib/glindent.py,sha256=RfBa2LDfLIqPLL5vMfC689TCVmqn8xf-qulSzkiatrc,1228
|
|
33
|
-
gam/gamlib/glmsgs.py,sha256=
|
|
33
|
+
gam/gamlib/glmsgs.py,sha256=Cgb_81itIGaEMtLPVVkYZtfxIMsqECa-eBjh7fA_o7A,34059
|
|
34
34
|
gam/gamlib/glskus.py,sha256=29vlBLBJCL4u9GawCt3eNeZq9HQG3hGFZk9-EainNng,15384
|
|
35
35
|
gam/gamlib/gluprop.py,sha256=IyPLCyvn7-NHTUenM71YPQPXRZXx6CB5q-GtJ-FYd1c,11461
|
|
36
36
|
gam/gamlib/glverlibs.py,sha256=mDphdXVN_dJlGUVGuLqOEA3yHBNBeqRV4DRoTX7Wl7A,982
|
|
@@ -47,8 +47,8 @@ gam/gdata/apps/audit/__init__.py,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrK
|
|
|
47
47
|
gam/gdata/apps/audit/service.py,sha256=Z1eueThcNeVUMWP1DRWc_DGHrJCiJI8W_xj6L-cqu-Q,9658
|
|
48
48
|
gam/gdata/apps/contacts/__init__.py,sha256=Um6zgIkiahZns7yAEuC3pxHSMD8iciZ_EoynSLoYPfU,30463
|
|
49
49
|
gam/gdata/apps/contacts/service.py,sha256=5lNb-Ii1Gyek6ePFji3kyoYtCBc8CuJTwagx2BL2o14,15684
|
|
50
|
-
gam7-7.27.
|
|
51
|
-
gam7-7.27.
|
|
52
|
-
gam7-7.27.
|
|
53
|
-
gam7-7.27.
|
|
54
|
-
gam7-7.27.
|
|
50
|
+
gam7-7.27.3.dist-info/METADATA,sha256=W85d4Rkgn2NKOZskyT90_iagAzpPGwCuiCC6OFh8GSo,3093
|
|
51
|
+
gam7-7.27.3.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
|
52
|
+
gam7-7.27.3.dist-info/entry_points.txt,sha256=HVUM5J7dA8YwvJfG30jiLefR19ExMs387TWugWd9sf4,42
|
|
53
|
+
gam7-7.27.3.dist-info/licenses/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
|
|
54
|
+
gam7-7.27.3.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|