@@ -13,7 +13,7 @@ function processTheImageQueue()
13
13
var img = queuedImages [ 0 ] ;
14
14
var sha = img . sha ;
15
15
16
- var realPath = file . realPath ( img . file ) ;
16
+ var realPath = fileManager . realPath ( img . file ) ;
17
17
18
18
sharp ( realPath ) . jpeg ( { quality : 95 } ) . resize ( { width : img . size , background : 'white' } ) . toFile ( p . join ( cacheFolder , sha + '.jpg' ) , function ( error ) {
19
19
@@ -174,7 +174,6 @@ var data = false;
174
174
175
175
function returnCacheImage ( file , sha , callback = false , vars = false )
176
176
{
177
-
178
177
if ( ! data ) data = storage . get ( 'cache' ) ;
179
178
180
179
if ( ! callback )
@@ -184,11 +183,11 @@ function returnCacheImage(file, sha, callback = false, vars = false)
184
183
sha = sha1 ( file ) ;
185
184
}
186
185
187
- var size = Math . round ( window . devicePixelRatio * 150 ) ;
186
+ let size = Math . round ( window . devicePixelRatio * 150 ) ;
188
187
189
- var imgCache = data [ sha ] ;
188
+ let imgCache = data [ sha ] ;
190
189
191
- var path = p . join ( cacheFolder , sha + '.jpg?size=' + size ) ;
190
+ let path = p . join ( cacheFolder , sha + '.jpg?size=' + size ) ;
192
191
193
192
if ( typeof imgCache == 'undefined' || ! fs . existsSync ( p . join ( cacheFolder , sha + '.jpg' ) ) )
194
193
{
@@ -213,6 +212,65 @@ function returnCacheImage(file, sha, callback = false, vars = false)
213
212
}
214
213
}
215
214
215
+ async function returnThumbnailsImages ( images , callback , file = false )
216
+ {
217
+ if ( ! data ) data = storage . get ( 'cache' ) ;
218
+
219
+ let size = Math . round ( window . devicePixelRatio * 150 ) ;
220
+
221
+ let thumbnails = { } ;
222
+ let toGenerateThumbnails = [ ] ;
223
+ let toGenerateThumbnailsData = { } ;
224
+
225
+ for ( let i = 0 , len = images . length ; i < len ; i ++ )
226
+ {
227
+ let image = images [ i ] ;
228
+
229
+ let sha = image . sha || sha1 ( image . path ) ;
230
+ let imgCache = data [ sha ] ;
231
+
232
+ let path = p . join ( cacheFolder , sha + '.jpg?size=' + size ) ;
233
+
234
+ if ( typeof imgCache == 'undefined' || ! fs . existsSync ( p . join ( cacheFolder , sha + '.jpg' ) ) )
235
+ {
236
+ toGenerateThumbnails . push ( image ) ;
237
+ toGenerateThumbnailsData [ image . path ] = { sha : sha , vars : image . vars } ;
238
+
239
+ thumbnails [ sha ] = { cache : false , path : '' , sha : sha } ;
240
+ }
241
+ else
242
+ {
243
+ data [ sha ] . lastAccess = time ( ) ;
244
+
245
+ if ( imgCache . size != size )
246
+ {
247
+ toGenerateThumbnails . push ( image ) ;
248
+ toGenerateThumbnailsData [ image . path ] = { sha : sha , vars : image . vars } ;
249
+
250
+ thumbnails [ sha ] = { cache : true , path : escapeBackSlash ( path ) , sha : sha } ;
251
+ }
252
+ else
253
+ {
254
+ thumbnails [ sha ] = { cache : true , path : escapeBackSlash ( path ) , sha : sha } ;
255
+ }
256
+ }
257
+ }
258
+
259
+ if ( toGenerateThumbnails . length > 0 && file )
260
+ {
261
+ // Consider adding this to a queue if it causes problems
262
+ file . makeAvailable ( toGenerateThumbnails , function ( image ) {
263
+
264
+ let data = toGenerateThumbnailsData [ image . path ] ;
265
+ addImageToQueue ( image . path , size , data . sha , callback , data . vars || false ) ;
266
+
267
+ } ) ;
268
+ }
269
+
270
+ return thumbnails ;
271
+ }
272
+
273
+
216
274
function writeFile ( name , content )
217
275
{
218
276
fs . writeFile ( p . join ( cacheFolder , name ) , content , function ( ) { } ) ;
@@ -229,6 +287,7 @@ function readFile(name)
229
287
module . exports = {
230
288
folder : cacheFolder ,
231
289
returnCacheImage : returnCacheImage ,
290
+ returnThumbnailsImages : returnThumbnailsImages ,
232
291
cleanQueue : cleanQueue ,
233
292
writeFile : writeFile ,
234
293
readFile : readFile ,
0 commit comments