32
32
// https://github.com/dropbox/dropbox-sdk-js/blob/master/examples/javascript/auth/index.html
33
33
// http://dropbox.github.io/dropbox-sdk-js/Dropbox.html
34
34
35
- // TODO: find()
36
-
37
35
import Promise from 'bluebird' ;
38
36
import Transport from 'vfs/transport' ;
39
37
import Preloader from 'utils/preloader' ;
@@ -44,6 +42,7 @@ import {_} from 'core/locales';
44
42
import * as FS from 'utils/fs' ;
45
43
46
44
const AUTH_TIMEOUT = ( 1000 * 30 ) ;
45
+ const MAX_RESULTS = 100 ;
47
46
48
47
///////////////////////////////////////////////////////////////////////////////
49
48
// TRANSPORTER
@@ -160,6 +159,35 @@ export default class DropboxTransport extends Transport {
160
159
} ) ;
161
160
}
162
161
162
+ _createMetadata ( root , iter ) {
163
+ return {
164
+ id : iter . id ,
165
+ filename : iter . name ,
166
+ path : FS . pathJoin ( root , iter . path_display ) ,
167
+ type : iter [ '.tag' ] === 'folder' ? 'dir' : 'file' ,
168
+ size : iter . size || 0
169
+ } ;
170
+ }
171
+
172
+ find ( file , options , a , mount ) {
173
+ const root = FS . getPathFromVirtual ( file . path ) ;
174
+
175
+ return new Promise ( ( resolve , reject ) => {
176
+ this . dbx . filesSearch ( {
177
+ path : root === '/' ? '' : root ,
178
+ query : options . query ,
179
+ max_results : MAX_RESULTS ,
180
+ mode : {
181
+ '.tag' : 'filename'
182
+ }
183
+ } ) . then ( ( response ) => {
184
+ return resolve ( response . matches . map ( ( iter ) => {
185
+ return this . _createMetadata ( mount . option ( 'root' ) , iter . metadata ) ;
186
+ } ) ) ;
187
+ } ) . catch ( reject ) ;
188
+ } ) ;
189
+ }
190
+
163
191
scandir ( item , options , mount ) {
164
192
const root = FS . getPathFromVirtual ( item . path ) ;
165
193
@@ -171,13 +199,7 @@ export default class DropboxTransport extends Transport {
171
199
172
200
this . dbx [ m ] ( a ) . then ( ( response ) => {
173
201
const found = ( response . entries || [ ] ) . map ( ( iter ) => {
174
- return {
175
- id : iter . id ,
176
- filename : iter . name ,
177
- path : FS . pathJoin ( item . path , iter . name ) ,
178
- type : iter [ '.tag' ] === 'folder' ? 'dir' : 'file' ,
179
- size : iter . size || 0
180
- } ;
202
+ return this . _createMetadata ( mount . option ( 'root' ) , iter ) ;
181
203
} ) ;
182
204
183
205
result = result . concat ( found ) ;
@@ -199,7 +221,6 @@ export default class DropboxTransport extends Transport {
199
221
this . dbx . sharingGetSharedLinkFile ( {
200
222
url
201
223
} ) . then ( ( data ) => {
202
- console . error ( data ) ;
203
224
return resolve ( data . fileBlob ) ;
204
225
} ) . catch ( reject ) ;
205
226
} ) . catch ( reject ) ;
0 commit comments