Skip to content

Commit c21c070

Browse files
committed
Refactored/cleaned-up.
1 parent 9c6f94d commit c21c070

File tree

1 file changed

+82
-46
lines changed

1 file changed

+82
-46
lines changed

gdrivefs/gdtool/normal_entry.py

Lines changed: 82 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import dateutil.parser
44
import json
55
import time
6+
import pprint
67

78
from time import mktime
89
from mimetypes import guess_type
@@ -19,18 +20,21 @@
1920

2021
class NormalEntry(object):
2122
__default_general_mime_type = Conf.get('default_mimetype')
22-
__properties_extra = ('is_directory',
23-
'is_visible',
24-
'parents',
25-
'download_types',
26-
'modified_date',
27-
'modified_date_epoch',
28-
'mtime_byme_date',
29-
'mtime_byme_date_epoch',
30-
'atime_byme_date',
31-
'atime_byme_date_epoch')
3223
__directory_mimetype = Conf.get('directory_mimetype')
3324

25+
__properties_extra = [
26+
'is_directory',
27+
'is_visible',
28+
'parents',
29+
'download_types',
30+
'modified_date',
31+
'modified_date_epoch',
32+
'mtime_byme_date',
33+
'mtime_byme_date_epoch',
34+
'atime_byme_date',
35+
'atime_byme_date_epoch',
36+
]
37+
3438
def __init__(self, gd_resource_type, raw_data):
3539
self.__info = {}
3640
self.__parents = []
@@ -39,46 +43,78 @@ def __init__(self, gd_resource_type, raw_data):
3943
self.__cache_mimetypes = None
4044
self.__cache_dict = {}
4145

42-
"""Return True if reading from this file should return info and deposit
43-
the data elsewhere. This is predominantly determined by whether we can
44-
get a file-size up-front, or we have to decide on a specific mime-type
45-
in order to do so.
46-
"""
47-
requires_mimetype = (u'fileSize' not in self.__raw_data and \
48-
raw_data[u'mimeType'] != self.__directory_mimetype)
46+
# Return True if reading from this file should return info and deposit
47+
# the data elsewhere. This is predominantly determined by whether we
48+
# can get a file-size up-front, or we have to decide on a specific
49+
# mime-type in order to do so.
4950

5051
try:
51-
self.__info['requires_mimetype'] = requires_mimetype
52-
self.__info['title'] = raw_data[u'title']
53-
self.__info['mime_type'] = raw_data[u'mimeType']
54-
self.__info['labels'] = raw_data[u'labels']
55-
self.__info['id'] = raw_data[u'id']
56-
self.__info['last_modifying_user_name'] = raw_data[u'lastModifyingUserName']
57-
self.__info['writers_can_share'] = raw_data[u'writersCanShare']
58-
self.__info['owner_names'] = raw_data[u'ownerNames']
59-
self.__info['editable'] = raw_data[u'editable']
60-
self.__info['user_permission'] = raw_data[u'userPermission']
61-
62-
self.__info['download_links'] = raw_data[u'exportLinks'] if u'exportLinks' in raw_data else { }
63-
self.__info['link'] = raw_data[u'embedLink'] if u'embedLink' in raw_data else None
64-
self.__info['file_size'] = int(raw_data[u'fileSize']) if u'fileSize' in raw_data else 0
65-
self.__info['file_extension'] = raw_data[u'fileExtension'] if u'fileExtension' in raw_data else None
66-
self.__info['md5_checksum'] = raw_data[u'md5Checksum'] if u'md5Checksum' in raw_data else None
67-
self.__info['image_media_metadata'] = raw_data[u'imageMediaMetadata'] if u'imageMediaMetadata' in raw_data else None
68-
69-
if u'downloadUrl' in raw_data:
70-
self.__info['download_links'][self.__info['mime_type']] = raw_data[u'downloadUrl']
71-
72-
self.__update_display_name()
73-
74-
for parent in raw_data[u'parents']:
75-
self.__parents.append(parent[u'id'])
76-
77-
except (KeyError) as e:
78-
_logger.exception("Could not normalize entry on raw key [%s]. "
79-
"Does not exist in source.", str(e))
52+
requires_mimetype = u'fileSize' not in self.__raw_data and \
53+
raw_data[u'mimeType'] != self.__directory_mimetype
54+
55+
self.__info['requires_mimetype'] = \
56+
requires_mimetype
57+
58+
self.__info['title'] = \
59+
raw_data[u'title']
60+
61+
self.__info['mime_type'] = \
62+
raw_data[u'mimeType']
63+
64+
self.__info['labels'] = \
65+
raw_data[u'labels']
66+
67+
self.__info['id'] = \
68+
raw_data[u'id']
69+
70+
self.__info['last_modifying_user_name'] = \
71+
raw_data[u'lastModifyingUserName']
72+
73+
self.__info['writers_can_share'] = \
74+
raw_data[u'writersCanShare']
75+
76+
self.__info['owner_names'] = \
77+
raw_data[u'ownerNames']
78+
79+
self.__info['editable'] = \
80+
raw_data[u'editable']
81+
82+
self.__info['user_permission'] = \
83+
raw_data[u'userPermission']
84+
except KeyError:
85+
_logger.exception("Could not normalize with missing key.\nRAW:\n"
86+
"%s", pprint.pformat(raw_data))
8087
raise
8188

89+
self.__info['link'] = \
90+
raw_data.get(u'embedLink')
91+
92+
self.__info['file_size'] = \
93+
int(raw_data.get(u'fileSize', 0))
94+
95+
self.__info['file_extension'] = \
96+
raw_data.get(u'fileExtension')
97+
98+
self.__info['md5_checksum'] = \
99+
raw_data.get(u'md5Checksum')
100+
101+
self.__info['image_media_metadata'] = \
102+
raw_data.get(u'imageMediaMetadata')
103+
104+
self.__info['download_links'] = \
105+
raw_data.get(u'exportLinks', {})
106+
107+
try:
108+
self.__info['download_links'][self.__info['mime_type']] = \
109+
raw_data[u'downloadUrl']
110+
except KeyError:
111+
pass
112+
113+
self.__update_display_name()
114+
115+
for parent in raw_data[u'parents']:
116+
self.__parents.append(parent[u'id'])
117+
82118
def __getattr__(self, key):
83119
return self.__info[key]
84120

0 commit comments

Comments
 (0)