fileutil.js 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. const ffmpeg = require ( 'ffmpeg' );
  2. const fs = require ( 'fs' );
  3. const crypto = require ( 'crypto' );
  4. const { exec } = require ( 'child_process' );
  5. const Config = require ( './config.json' );
  6. const logger = require ( './logger.js' );
  7. function handleUploadedFile ( filename, callback, error )
  8. {
  9. exec ( Config.probe_command + ' ' + filename, function ( err, stdout, stderr )
  10. {
  11. if ( err ) return error ( err );
  12. try
  13. {
  14. let response = JSON.parse ( stdout );
  15. if ( response.streams.length == 1 && response.streams[0].codec_name == 'mp3' && response.format.format_name == 'mp3' )
  16. {
  17. let name = crypto.randomBytes ( 12 ).toString ( 'hex' );
  18. fs.renameSync ( filename, './playlist/' + name + '.mp3' );
  19. logger.log ( '[Info/WebServer] Added new music ' + name );
  20. return callback ( name );
  21. }
  22. else
  23. {
  24. return error ( );
  25. }
  26. } catch ( exception )
  27. {
  28. fs.unlinkSync ( filename );
  29. logger.error ( exception );
  30. error ( exception );
  31. }
  32. } );
  33. }
  34. module.exports.handleUploadedFile = handleUploadedFile;