UNPKG

record-desktop

Version:

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

69 lines (54 loc) 1.55 kB
import { dialog } from 'electron'; import pify from 'pify'; import prettyBytes from 'pretty-bytes'; import fs from 'fs'; const stat = pify(fs.stat); const readdir = pify(fs.readdir); import imgur from 'imgur'; imgur.setClientId('a9e8e4383e6dfa2'); import { nativeImage, clipboard } from 'electron'; import { notify } from './logger'; export openFile from './unix-utils/wrappers/xdg-open'; export const selectFolder = () => { const result = dialog.showOpenDialog({ properties: [ 'openDirectory' ] }); return result && result[0]; }; export const getFiles = folder => { if (!folder) { return Promise.resolve([]); } let files; return readdir(folder) .then(_files => { files = _files; return Promise.all(files.map(file => stat(`${folder}/${file}`))); }) .then(stats => { stats.forEach((stat, i) => { files[i] = { url: folder + '/' + files[i], filename: files[i], mtime: stat.mtime, size: prettyBytes(stat.size) } }); files.sort((a, b) => b.mtime - a.mtime); return files; }); }; export const deleteFile = file => { return fs.unlinkSync(file); }; export const copyToClipboard = file => { const image = nativeImage.createFromPath(file); clipboard.writeImage(image); notify('Copied to Clipboard'); }; export const uploadFile = file => { notify('Uploading...'); imgur.uploadFile(file) .then(function (json) { clipboard.writeText(json.data.link); notify('Copied Url to Clipboard'); }); };