mirror of
https://github.com/GAM-team/GAM.git
synced 2026-07-05 05:11:35 +00:00
Update showDriveFiles to handle lists containing dictionaries
This commit is contained in:
60
src/gam.py
60
src/gam.py
@@ -3484,34 +3484,44 @@ def showDriveFiles(users):
|
|||||||
for f_file in feed:
|
for f_file in feed:
|
||||||
a_file = {u'Owner': user}
|
a_file = {u'Owner': user}
|
||||||
for attrib in f_file:
|
for attrib in f_file:
|
||||||
if attrib in [u'kind', u'etags', u'etag', u'owners', u'parents', u'permissions']:
|
if attrib in [u'kind', u'etag', u'owners', u'parents', u'permissions']:
|
||||||
continue
|
continue
|
||||||
attrib_type = type(f_file[attrib])
|
if not isinstance(f_file[attrib], dict):
|
||||||
if attrib not in titles and not attrib_type is dict:
|
if attrib not in titles:
|
||||||
titles.append(attrib)
|
titles.append(attrib)
|
||||||
files_attr[0][attrib] = attrib
|
files_attr[0][attrib] = attrib
|
||||||
if attrib_type is list:
|
if isinstance(f_file[attrib], list):
|
||||||
a_file[attrib] = u' '.join(f_file[attrib])
|
if isinstance(f_file[attrib][0], (unicode, bool)):
|
||||||
elif attrib_type is unicode or attrib_type is bool:
|
a_file[attrib] = u' '.join(f_file[attrib])
|
||||||
a_file[attrib] = f_file[attrib]
|
else:
|
||||||
elif attrib_type is dict:
|
for j, l_attrib in enumerate(f_file[attrib]):
|
||||||
if attrib == u'labels':
|
for list_attrib in l_attrib:
|
||||||
for dict_attrib in f_file[attrib]:
|
if list_attrib in [u'kind', u'etag']:
|
||||||
if dict_attrib not in titles:
|
continue
|
||||||
titles.append(dict_attrib)
|
x_attrib = u'{0}.{1}.{2}'.format(attrib, j, list_attrib)
|
||||||
files_attr[0][dict_attrib] = dict_attrib
|
if x_attrib not in titles:
|
||||||
a_file[dict_attrib] = f_file[attrib][dict_attrib]
|
titles.append(x_attrib)
|
||||||
|
files_attr[0][x_attrib] = x_attrib
|
||||||
|
a_file[x_attrib] = l_attrib[list_attrib]
|
||||||
|
elif isinstance(f_file[attrib], (unicode, bool)):
|
||||||
|
a_file[attrib] = f_file[attrib]
|
||||||
else:
|
else:
|
||||||
for dict_attrib in f_file[attrib]:
|
sys.stderr.write(u'File ID: {0}, Attribute: {1}, Unknown type: {2}\n'.format(f_file[u'id'], attrib, type(f_file[attrib])))
|
||||||
if dict_attrib in [u'kind', u'etags', u'etag']:
|
elif attrib == u'labels':
|
||||||
continue
|
for dict_attrib in f_file[attrib]:
|
||||||
x_attrib = u'{0}.{1}'.format(attrib, dict_attrib)
|
if dict_attrib not in titles:
|
||||||
if x_attrib not in titles:
|
titles.append(dict_attrib)
|
||||||
titles.append(x_attrib)
|
files_attr[0][dict_attrib] = dict_attrib
|
||||||
files_attr[0][x_attrib] = x_attrib
|
a_file[dict_attrib] = f_file[attrib][dict_attrib]
|
||||||
a_file[x_attrib] = f_file[attrib][dict_attrib]
|
|
||||||
else:
|
else:
|
||||||
print attrib_type
|
for dict_attrib in f_file[attrib]:
|
||||||
|
if dict_attrib in [u'kind', u'etag']:
|
||||||
|
continue
|
||||||
|
x_attrib = u'{0}.{1}'.format(attrib, dict_attrib)
|
||||||
|
if x_attrib not in titles:
|
||||||
|
titles.append(x_attrib)
|
||||||
|
files_attr[0][x_attrib] = x_attrib
|
||||||
|
a_file[x_attrib] = f_file[attrib][dict_attrib]
|
||||||
files_attr.append(a_file)
|
files_attr.append(a_file)
|
||||||
output_csv(files_attr, titles, u'%s %s Drive Files' % (sys.argv[1], sys.argv[2]), todrive)
|
output_csv(files_attr, titles, u'%s %s Drive Files' % (sys.argv[1], sys.argv[2]), todrive)
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user