record-desktop
Version:
Record gifs and take screenshots on linux, built with electron.
91 lines (66 loc) • 2.48 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.uploadFile = exports.copyToClipboard = exports.deleteFile = exports.getFiles = exports.selectFolder = exports.openFile = undefined;
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 _logger = require('./logger');
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 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, _logger.notify)('Copied to Clipboard');
};
var uploadFile = exports.uploadFile = function uploadFile(file) {
(0, _logger.notify)('Uploading...');
_imgur2.default.uploadFile(file).then(function (json) {
_electron.clipboard.writeText(json.data.link);
(0, _logger.notify)('Copied Url to Clipboard');
});
};