UNPKG

record-desktop

Version:

Record gifs and take screenshots on linux, built with electron.

103 lines (72 loc) 2.81 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); exports.uploadFile = exports.copyToClipboard = exports.deleteFile = exports.getFiles = exports.selectFolder = exports.log = exports.openFile = undefined; var _winston = require('winston'); var _winston2 = _interopRequireDefault(_winston); var _electron = require('electron'); var _pify = require('pify'); var _pify2 = _interopRequireDefault(_pify); var _prettyBytes = require('pretty-bytes'); var _prettyBytes2 = _interopRequireDefault(_prettyBytes); var _fs = require('fs'); var _fs2 = _interopRequireDefault(_fs); var _imgur = require('imgur'); var _imgur2 = _interopRequireDefault(_imgur); var _main = require('./main'); var _xdgOpen = require('./unix-utils/wrappers/xdg-open'); var _xdgOpen2 = _interopRequireDefault(_xdgOpen); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var stat = (0, _pify2.default)(_fs2.default.stat); var readdir = (0, _pify2.default)(_fs2.default.readdir); _imgur2.default.setClientId('a9e8e4383e6dfa2'); exports.openFile = _xdgOpen2.default; var logger = new _winston2.default.Logger({ transports: [new _winston2.default.transports.Console(), new _winston2.default.transports.File({ filename: '/tmp/record-desktop' })] }); var log = exports.log = logger.info.bind(logger); var selectFolder = exports.selectFolder = function selectFolder() { var result = _electron.dialog.showOpenDialog({ properties: ['openDirectory'] }); return result && result[0]; }; var getFiles = exports.getFiles = function getFiles(folder) { if (!folder) { return Promise.resolve([]); } var files = void 0; return readdir(folder).then(function (_files) { files = _files; return Promise.all(files.map(function (file) { return stat(folder + '/' + file); })); }).then(function (stats) { stats.forEach(function (stat, i) { files[i] = { url: folder + '/' + files[i], filename: files[i], mtime: stat.mtime, size: (0, _prettyBytes2.default)(stat.size) }; }); files.sort(function (a, b) { return b.mtime - a.mtime; }); return files; }); }; var deleteFile = exports.deleteFile = function deleteFile(file) { return _fs2.default.unlinkSync(file); }; var copyToClipboard = exports.copyToClipboard = function copyToClipboard(file) { var image = _electron.nativeImage.createFromPath(file); _electron.clipboard.writeImage(image); (0, _main.notify)('Copied to Clipboard'); }; var uploadFile = exports.uploadFile = function uploadFile(file) { (0, _main.notify)('Uploading...'); _imgur2.default.uploadFile(file).then(function (json) { _electron.clipboard.writeText(json.data.link); (0, _main.notify)('Copied Url to Clipboard'); }); };