screenshotHandler.js 1.0 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. var debug = require('debug')('ylt:screenshotHandler');
  2. var sharp = require('sharp');
  3. var Q = require('q');
  4. var fs = require('fs');
  5. var path = require('path');
  6. // Disable sharp cache to reduce the "disk is full" error on Amazon Lambda
  7. sharp.cache(false);
  8. var screenshotHandler = function() {
  9. this.findAndOptimizeScreenshot = async function(tmpScreenshotPath, width) {
  10. return sharp(tmpScreenshotPath)
  11. .resize({width: 600})
  12. .jpeg({quality: 85})
  13. .toBuffer();
  14. };
  15. this.deleteTmpFile = function(tmpFilePath) {
  16. var deferred = Q.defer();
  17. fs.unlink(tmpFilePath, function (err) {
  18. if (err) {
  19. debug('Screenshot temporary file not found, could not be deleted. But it is not a problem.');
  20. } else {
  21. debug('Screenshot temporary file deleted.');
  22. }
  23. deferred.resolve();
  24. });
  25. return deferred.promise;
  26. };
  27. };
  28. module.exports = new screenshotHandler();