Browse Source

Add additional Google Drive Metadata (#2795)

Signed-off-by: Adam Henley <adamazing@gmail.com>

Co-authored-by: Adam Henley <adamazing@gmail.com>
Adam Henley 4 years ago
parent
commit
db6fe5fd73

+ 14 - 0
packages/@uppy/companion/src/server/provider/drive/adapter.js

@@ -122,3 +122,17 @@ exports.getGsuiteExportType = (mimeType) => {
 
   return typeMaps[mimeType] || 'application/pdf'
 }
+
+exports.getImageHeight = (item) => item.imageMediaMetadata && item.imageMediaMetadata.height
+
+exports.getImageWidth = (item) => item.imageMediaMetadata && item.imageMediaMetadata.width
+
+exports.getImageRotation = (item) => item.imageMediaMetadata && item.imageMediaMetadata.rotation
+
+exports.getImageDate = (item) => item.imageMediaMetadata && item.imageMediaMetadata.date
+
+exports.getVideoHeight = (item) => item.videoMediaMetadata && item.videoMetadata.height
+
+exports.getVideoWidth = (item) => item.videoMediaMetadata && item.videoMetadata.width
+
+exports.getVideoDurationMillis = (item) => item.videoMediaMetadata && item.videoMetadata.durationMillis

+ 9 - 2
packages/@uppy/companion/src/server/provider/drive/index.js

@@ -6,7 +6,7 @@ const purest = require('purest')({ request })
 const logger = require('../../logger')
 const adapter = require('./adapter')
 const { ProviderApiError, ProviderAuthError } = require('../error')
-const DRIVE_FILE_FIELDS = 'kind,id,name,mimeType,ownedByMe,permissions(role,emailAddress),size,modifiedTime,iconLink,thumbnailLink,teamDriveId'
+const DRIVE_FILE_FIELDS = 'kind,id,imageMediaMetadata,name,mimeType,ownedByMe,permissions(role,emailAddress),size,modifiedTime,iconLink,thumbnailLink,teamDriveId,videoMediaMetadata'
 const DRIVE_FILES_FIELDS = `kind,nextPageToken,incompleteSearch,files(${DRIVE_FILE_FIELDS})`
 // using wildcard to get all 'drive' fields because specifying fields seems no to work for the /drives endpoint
 const SHARED_DRIVE_FIELDS = '*'
@@ -225,7 +225,14 @@ class Drive extends Provider {
         // @todo isTeamDrive is left for backward compatibility. We should remove it in the next
         // major release.
         isTeamDrive: adapter.isSharedDrive(item),
-        isSharedDrive: adapter.isSharedDrive(item)
+        isSharedDrive: adapter.isSharedDrive(item),
+        imageHeight: adapter.getImageHeight(item),
+        imageWidth: adapter.getImageWidth(item),
+        imageRotation: adapter.getImageRotation(item),
+        imageDateTime: adapter.getImageDate(item),
+        videoHeight: adapter.getVideoHeight(item),
+        videoWidth: adapter.getVideoWidth(item),
+        videoDurationMillis: adapter.getVideoDurationMillis(item)
       }
     })