def getPhoto(users):
cd = buildGAPIObject(API.DIRECTORY)
targetFolder = os.getcwd()
showPhotoData = True
while Cmd.ArgumentsRemaining():
myarg = getArgument()
if myarg == u'drivedir':
targetFolder = GC.Values[GC.DRIVE_DIR]
elif myarg == u'targetfolder':
targetFolder = os.path.expanduser(getString(Cmd.OB_FILE_PATH))
if not os.path.isdir(targetFolder):
os.makedirs(targetFolder)
elif myarg == u'noshow':
showPhotoData = False
else:
unknownArgumentExit()
i, count, users = getEntityArgument(users)
for user in users:
i += 1
user = normalizeEmailAddressOrUID(user)
try:
entityPerformActionNumItems([Ent.USER, user], 1, Ent.PHOTO, i, count)
photo = callGAPI(cd.users().photos(), u'get',
throw_reasons=[GAPI.USER_NOT_FOUND, GAPI.FORBIDDEN, GAPI.PHOTO_NOT_FOUND],
userKey=user)
filename = os.path.join(targetFolder, u'{0}.jpg'.format(user))
photo_data = str(photo[u'photoData'])
if showPhotoData:
writeStdout(photo_data+'\n')
status, e = writeFileReturnError(filename, base64.urlsafe_b64decode(photo_data))
if status:
entityActionPerformed([Ent.USER, user, Ent.PHOTO, filename], i, count)
else:
entityActionFailedWarning([Ent.USER, user, Ent.PHOTO, filename], str(e), i, count)
except GAPI.photoNotFound as e:
entityActionFailedWarning([Ent.USER, user, Ent.PHOTO, None], str(e), i, count)
except (GAPI.userNotFound, GAPI.forbidden):
entityUnknownWarning(Ent.USER, user, i, count)
评论列表
文章目录