Exemplo n.º 1
0
 def _extract_item(self, f, include_download_info=False):
     size = long('%s' % Utils.get_safe_value(f, 'size', 0))
     item = {
         'id':
         f['id'],
         'name':
         f['name'],
         'name_extension':
         Utils.get_extension(f['name']),
         'drive_id':
         Utils.get_safe_value(
             Utils.get_safe_value(f, 'owners', [{}])[0], 'permissionId'),
         'mimetype':
         Utils.get_safe_value(f, 'mimeType', ''),
         'last_modified_date':
         Utils.get_safe_value(f, 'modifiedTime'),
         'size':
         size,
         'description':
         Utils.get_safe_value(f, 'description', '')
     }
     if item['mimetype'] == 'application/vnd.google-apps.folder':
         item['folder'] = {'child_count': 0}
     if 'videoMediaMetadata' in f:
         video = f['videoMediaMetadata']
         item['video'] = {
             'width':
             Utils.get_safe_value(video, 'width'),
             'height':
             Utils.get_safe_value(video, 'height'),
             'duration':
             long('%s' % Utils.get_safe_value(video, 'durationMillis', 0)) /
             1000
         }
     if 'imageMediaMetadata' in f:
         item['image'] = {'size': size}
     if 'hasThumbnail' in f and f['hasThumbnail']:
         item['thumbnail'] = Utils.get_safe_value(f, 'thumbnailLink')
     if include_download_info:
         parameters = {
             'alt': 'media',
             'access_token':
             self._provider.get_access_tokens()['access_token']
         }
         url = self._provider._get_api_url() + '/files/%s' % item['id']
         if 'size' not in f and item[
                 'mimetype'] == 'application/vnd.google-apps.document':
             url += '/export'
             parameters['mimeType'] = self.get_mimetype_by_extension(
                 item['name_extension'])
         item['download_info'] = {
             'url': url + '?%s' % urllib.urlencode(parameters)
         }
     return item
Exemplo n.º 2
0
 def _extract_item(self, f, include_download_info=False):
     item = {
         'id': f['id'],
         'name': f['name'],
         'name_extension' : Utils.get_extension(f['name']),
         'drive_id' : Utils.get_safe_value(Utils.get_safe_value(f, 'parentReference', {}), 'driveId'),
         'mimetype' : Utils.get_safe_value(Utils.get_safe_value(f, 'file', {}), 'mimeType'),
         'last_modified_date' : Utils.get_safe_value(f,'lastModifiedDateTime'),
         'size': Utils.get_safe_value(f, 'size', 0),
         'description': Utils.get_safe_value(f, 'description', '')
     }
     if 'folder' in f:
         item['folder'] = {
             'child_count' : Utils.get_safe_value(f['folder'],'childCount',0)
         }
     if 'video' in f:
         video = f['video']
         item['video'] = {
             'width' : Utils.get_safe_value(video,'width', 0),
             'height' : Utils.get_safe_value(video, 'height', 0),
             'duration' : Utils.get_safe_value(video, 'duration', 0) /1000
         }
     if 'audio' in f:
         audio = f['audio']
         item['audio'] = {
             'tracknumber' : Utils.get_safe_value(audio, 'track'),
             'discnumber' : Utils.get_safe_value(audio, 'disc'),
             'duration' : int(Utils.get_safe_value(audio, 'duration') or '0') / 1000,
             'year' : Utils.get_safe_value(audio, 'year'),
             'genre' : Utils.get_safe_value(audio, 'genre'),
             'album': Utils.get_safe_value(audio, 'album'),
             'artist': Utils.get_safe_value(audio, 'artist'),
             'title': Utils.get_safe_value(audio, 'title')
         }
     if 'image' in f or 'photo' in f:
         item['image'] = {
             'size' : Utils.get_safe_value(f, 'size', 0)
         }
     if 'thumbnails' in f and type(f['thumbnails']) == list and len(f['thumbnails']) > 0:
         thumbnails = f['thumbnails'][0]
         item['thumbnail'] = Utils.get_safe_value(Utils.get_safe_value(thumbnails, 'large', {}), 'url', '')
     if include_download_info:
         item['download_info'] =  {
             'url' : Utils.get_safe_value(f,'@microsoft.graph.downloadUrl')
         }
     return item
Exemplo n.º 3
0
 def _extract_item(self, f, driveid, include_download_info=False):
     size = long('%s' % Utils.get_safe_value(f, 'size', 0))
     item = {
         'id': f['id'],
         'name': f['name'],
         'name_extension': Utils.get_extension(f['name']),
         'drive_id': driveid,
         'path_lower': f['path_lower'],
         'last_modified_date': Utils.get_safe_value(f, 'client_modified'),
         'size': size
     }
     if f['.tag'] == 'folder':
         item['folder'] = {'child_count': 0}
     metadata = Utils.get_safe_value(
         Utils.get_safe_value(f, 'media_info', {}), 'metadata', {})
     tag = Utils.get_safe_value(metadata, '.tag', '')
     if tag == 'video':
         video = metadata['video']
         dimensions = Utils.get_safe_value(video, 'dimensions', {})
         item['video'] = {
             'width':
             long('%s' % Utils.get_safe_value(dimensions, 'width', 0)),
             'height':
             long('%s' % Utils.get_safe_value(dimensions, 'height', 0)),
             'duration':
             long('%s' % Utils.get_safe_value(video, 'duration', 0)) / 1000
         }
     elif tag == 'photo':
         item['image'] = {'size': size}
     if include_download_info:
         parameters = {
             'arg':
             json.dumps({'path': item['id']}),
             'authorization':
             'Bearer %s' %
             self._provider.get_access_tokens()['access_token']
         }
         url = self._provider._get_content_url() + '/files/download'
         item['download_info'] = {
             'url': url + '?%s' % urllib.urlencode(parameters)
         }
     return item
Exemplo n.º 4
0
 def _extract_item(self, f, include_download_info=False):
     size = long('%s' % Utils.get_safe_value(f, 'size', 0))
     item = {
         'id': f['id'],
         'name': f['name'],
         'name_extension' : Utils.get_extension(f['name']),
         'drive_id' : Utils.get_safe_value(Utils.get_safe_value(f, 'owners', [{}])[0], 'permissionId'),
         'mimetype' : Utils.get_safe_value(f, 'mimeType', ''),
         'last_modified_date' : Utils.get_safe_value(f,'modifiedTime'),
         'size': size,
         'description': Utils.get_safe_value(f, 'description', '')
     }
     if item['mimetype'] == 'application/vnd.google-apps.folder':
         item['folder'] = {
             'child_count' : 0
         }
     if 'videoMediaMetadata' in f:
         video = f['videoMediaMetadata']
         item['video'] = {
             'width' : Utils.get_safe_value(video, 'width'),
             'height' : Utils.get_safe_value(video, 'height'),
             'duration' : long('%s' % Utils.get_safe_value(video, 'durationMillis', 0)) / 1000
         }
     if 'imageMediaMetadata' in f:
         item['image'] = {
             'size' : size
         }
     if 'hasThumbnail' in f and f['hasThumbnail']:
         item['thumbnail'] = Utils.get_safe_value(f, 'thumbnailLink')
     if include_download_info:
         parameters = {
             'alt': 'media',
             'access_token': self._provider.get_access_tokens()['access_token']
         }
         url = self._provider._get_api_url() + '/files/%s' % item['id']
         if 'size' not in f and item['mimetype'] == 'application/vnd.google-apps.document':
             url += '/export'
             parameters['mimeType'] = self.get_mimetype_by_extension(item['name_extension'])
         item['download_info'] =  {
             'url' : url + '?%s' % urllib.urlencode(parameters)
         }
     return item
Exemplo n.º 5
0
 def _extract_item(self, f, include_download_info=False):
     kind = Utils.get_safe_value(f, 'kind', '')
     if kind == 'drive#change':
         if 'file' in f:
             f = f['file']
         else:
             return {}
     size = long('%s' % Utils.get_safe_value(f, 'size', 0))
     is_album = kind == 'album'
     is_media_items = kind == 'media_item'
     item_id = f['id']
     if is_album:
         mimetype = 'application/vnd.google-apps.folder'
         name = Utils.get_safe_value(f, 'title', item_id)
     else:
         mimetype = Utils.get_safe_value(f, 'mimeType', '')
         name = Utils.get_safe_value(f, 'name', '')
     if is_media_items:
         name = Utils.get_safe_value(f, 'filename', item_id) 
     item = {
         'id': item_id,
         'name': name,
         'name_extension' : Utils.get_extension(name),
         'parent': Utils.get_safe_value(f, 'parents', ['root'])[0],
         'drive_id' : Utils.get_safe_value(Utils.get_safe_value(f, 'owners', [{}])[0], 'permissionId'),
         'mimetype' : mimetype,
         'last_modified_date' : Utils.get_safe_value(f,'modifiedTime'),
         'size': size,
         'description': Utils.get_safe_value(f, 'description', ''),
         'deleted' : Utils.get_safe_value(f, 'trashed', False)
     }
     if item['mimetype'] == 'application/vnd.google-apps.folder':
         item['folder'] = {
             'child_count' : 0
         }
     if is_media_items:
         item['url'] = f['baseUrl'] + '=d'
         if 'mediaMetadata' in f:
             metadata = f['mediaMetadata']
             item['video'] = {
                 'width' : Utils.get_safe_value(metadata, 'width'),
                 'height' : Utils.get_safe_value(metadata, 'height')
             }
             item['last_modified_date'] = Utils.get_safe_value(metadata, 'creationTime')
     if 'videoMediaMetadata' in f:
         video = f['videoMediaMetadata']
         item['video'] = {
             'width' : Utils.get_safe_value(video, 'width'),
             'height' : Utils.get_safe_value(video, 'height'),
             'duration' : long('%s' % Utils.get_safe_value(video, 'durationMillis', 0)) / 1000
         }
     if 'imageMediaMetadata' in f or 'mediaMetadata' in f:
         item['image'] = {
             'size' : size
         }
     if 'hasThumbnail' in f and f['hasThumbnail']:
         item['thumbnail'] = Utils.get_safe_value(f, 'thumbnailLink')
     if is_album:
         item['thumbnail'] = Utils.get_safe_value(f, 'coverPhotoBaseUrl')
         item['id'] = 'album-' + item['id']
     if include_download_info:
         if is_media_items:
             item['download_info'] =  {
                 'url' : item['url']
             }
         else:
             parameters = {
                 'alt': 'media',
                 'access_token': self.get_access_tokens()['access_token']
             }
             url = self._get_api_url() + '/files/%s' % item['id']
             if 'size' not in f and item['mimetype'] == 'application/vnd.google-apps.document':
                 url += '/export'
                 parameters['mimeType'] = Utils.default(Utils.get_mimetype_by_extension(item['name_extension']), Utils.get_mimetype_by_extension('pdf'))
             item['download_info'] =  {
                 'url' : url + '?%s' % urllib.urlencode(parameters)
             }
     return item
Exemplo n.º 6
0
 def _extract_item(self, f, include_download_info=False):
     name = Utils.get_safe_value(f, 'name', '')
     parent_reference = Utils.get_safe_value(f, 'parentReference', {})
     item = {
         'id':
         f['id'],
         'name':
         name,
         'name_extension':
         Utils.get_extension(name),
         'drive_id':
         Utils.get_safe_value(parent_reference, 'driveId'),
         'parent':
         Utils.get_safe_value(parent_reference, 'id'),
         'mimetype':
         Utils.get_safe_value(Utils.get_safe_value(f, 'file', {}),
                              'mimeType'),
         'last_modified_date':
         Utils.get_safe_value(f, 'lastModifiedDateTime'),
         'size':
         Utils.get_safe_value(f, 'size', 0),
         'description':
         Utils.get_safe_value(f, 'description', ''),
         'deleted':
         'deleted' in f
     }
     if 'folder' in f:
         item['folder'] = {
             'child_count': Utils.get_safe_value(f['folder'], 'childCount',
                                                 0)
         }
     if 'video' in f:
         video = f['video']
         item['video'] = {
             'width': Utils.get_safe_value(video, 'width', 0),
             'height': Utils.get_safe_value(video, 'height', 0),
             'duration': Utils.get_safe_value(video, 'duration', 0) / 1000
         }
     if 'audio' in f:
         audio = f['audio']
         item['audio'] = {
             'tracknumber': Utils.get_safe_value(audio, 'track'),
             'discnumber': Utils.get_safe_value(audio, 'disc'),
             'duration':
             int(Utils.get_safe_value(audio, 'duration') or '0') / 1000,
             'year': Utils.get_safe_value(audio, 'year'),
             'genre': Utils.get_safe_value(audio, 'genre'),
             'album': Utils.get_safe_value(audio, 'album'),
             'artist': Utils.get_safe_value(audio, 'artist'),
             'title': Utils.get_safe_value(audio, 'title')
         }
     if 'image' in f or 'photo' in f:
         item['image'] = {'size': Utils.get_safe_value(f, 'size', 0)}
     if 'thumbnails' in f and type(
             f['thumbnails']) == list and len(f['thumbnails']) > 0:
         thumbnails = f['thumbnails'][0]
         item['thumbnail'] = Utils.get_safe_value(
             Utils.get_safe_value(thumbnails, 'large', {}), 'url', '')
     if include_download_info:
         item['download_info'] = {
             'url': Utils.get_safe_value(f, '@microsoft.graph.downloadUrl')
         }
     return item