@@ -171,10 +171,19 @@ function render_directories( $client, $dir ) {
171171 $ page_token = $ response ->getNextPageToken ();
172172 } while ( null !== $ page_token );
173173
174+ $ client ->getClient ()->setUseBatch ( true );
175+ $ batch = $ client ->createBatch ();
176+ dir_images_requests ( $ client , $ batch , $ ids );
177+ if ( $ dir_counts_allowed ) {
178+ dir_counts_requests ( $ client , $ batch , $ ids );
179+ }
180+ $ responses = $ batch ->execute ();
181+ $ client ->getClient ()->setUseBatch ( false );
182+
174183 try {
175- $ dir_images = dir_images ( $ client , $ ids );
184+ $ dir_images = dir_images_responses ( $ responses , $ ids );
176185 if ( $ dir_counts_allowed ) {
177- $ dir_counts = dir_counts ( $ client , $ ids );
186+ $ dir_counts = dir_counts_responses ( $ responses , $ ids );
178187 }
179188 } catch ( \Sgdg \Vendor \Google_Service_Exception $ e ) {
180189 if ( 'userRateLimitExceeded ' === $ e ->getErrors ()[0 ]['reason ' ] ) {
@@ -198,9 +207,7 @@ function render_directories( $client, $dir ) {
198207 return $ ret ;
199208}
200209
201- function dir_images ( $ client , $ dirs ) {
202- $ client ->getClient ()->setUseBatch ( true );
203- $ batch = $ client ->createBatch ();
210+ function dir_images_requests ( $ client , $ batch , $ dirs ) {
204211 $ params = [
205212 'supportsTeamDrives ' => true ,
206213 'includeTeamDriveItems ' => true ,
@@ -212,14 +219,14 @@ function dir_images( $client, $dirs ) {
212219 foreach ( $ dirs as $ dir ) {
213220 $ params ['q ' ] = '" ' . $ dir . '" in parents and mimeType contains "image/" and trashed = false ' ;
214221 $ request = $ client ->files ->listFiles ( $ params );
215- $ batch ->add ( $ request , $ dir );
222+ $ batch ->add ( $ request , ' img- ' . $ dir );
216223 }
217- $ responses = $ batch ->execute ();
218- $ client ->getClient ()->setUseBatch ( false );
224+ }
219225
226+ function dir_images_responses ( $ responses , $ dirs ) {
220227 $ ret = [];
221228 foreach ( $ dirs as $ dir ) {
222- $ response = $ responses [ 'response- ' . $ dir ];
229+ $ response = $ responses [ 'response-img- ' . $ dir ];
223230 if ( $ response instanceof \Sgdg \Vendor \Google_Service_Exception ) {
224231 throw $ response ;
225232 }
@@ -233,9 +240,7 @@ function dir_images( $client, $dirs ) {
233240 return $ ret ;
234241}
235242
236- function dir_counts ( $ client , $ dirs ) {
237- $ client ->getClient ()->setUseBatch ( true );
238- $ batch = $ client ->createBatch ();
243+ function dir_counts_requests ( $ client , $ batch , $ dirs ) {
239244 $ params = [
240245 'supportsTeamDrives ' => true ,
241246 'includeTeamDriveItems ' => true ,
@@ -246,18 +251,18 @@ function dir_counts( $client, $dirs ) {
246251 foreach ( $ dirs as $ dir ) {
247252 $ params ['q ' ] = '" ' . $ dir . '" in parents and mimeType contains "application/vnd.google-apps.folder" and trashed = false ' ;
248253 $ request = $ client ->files ->listFiles ( $ params );
249- $ batch ->add ( $ request , 'dir - ' . $ dir );
254+ $ batch ->add ( $ request , 'dircount - ' . $ dir );
250255 $ params ['q ' ] = '" ' . $ dir . '" in parents and mimeType contains "image/" and trashed = false ' ;
251256 $ request = $ client ->files ->listFiles ( $ params );
252- $ batch ->add ( $ request , 'img - ' . $ dir );
257+ $ batch ->add ( $ request , 'imgcount - ' . $ dir );
253258 }
254- $ responses = $ batch ->execute ();
255- $ client ->getClient ()->setUseBatch ( false );
259+ }
256260
261+ function dir_counts_responses ( $ responses , $ dirs ) {
257262 $ ret = [];
258263 foreach ( $ dirs as $ dir ) {
259- $ dir_response = $ responses [ 'response-dir - ' . $ dir ];
260- $ img_response = $ responses [ 'response-img - ' . $ dir ];
264+ $ dir_response = $ responses [ 'response-dircount - ' . $ dir ];
265+ $ img_response = $ responses [ 'response-imgcount - ' . $ dir ];
261266 if ( $ dir_response instanceof \Sgdg \Vendor \Google_Service_Exception ) {
262267 throw $ dir_response ;
263268 }
0 commit comments