UNPKG

ez-organizer

Version:

Organise tvshows automatically (part of the 'ez' programs)

154 lines (132 loc) 4.88 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator")); var _promise = _interopRequireDefault(require("@babel/runtime/core-js/promise")); var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator")); var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck")); var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass")); var _path = _interopRequireDefault(require("path")); var _fsExtra = _interopRequireDefault(require("fs-extra")); var _progress = _interopRequireDefault(require("progress")); var _truncate = _interopRequireDefault(require("truncate")); var FileStream = /*#__PURE__*/ function () { function FileStream(_fileUri, _outputURI) { (0, _classCallCheck2.default)(this, FileStream); this.fileUri = _fileUri; this.outputURI = _outputURI; this.filename = _path.default.basename(_fileUri); } (0, _createClass2.default)(FileStream, [{ key: "copy", value: function () { var _copy = (0, _asyncToGenerator2.default)( /*#__PURE__*/ _regenerator.default.mark(function _callee(id) { var fileStats, bar, fileStream, writeStream; return _regenerator.default.wrap(function _callee$(_context) { while (1) { switch (_context.prev = _context.next) { case 0: _context.next = 2; return this._fileStats(this.fileUri); case 2: fileStats = _context.sent; bar = new _progress.default(" ".concat(id, ". Copying ").concat((0, _truncate.default)(this.filename, 100), " [:bar] :percent"), { width: 30, total: fileStats.size }); fileStream = _fsExtra.default.createReadStream(this.fileUri); writeStream = _fsExtra.default.createWriteStream(this.outputURI); return _context.abrupt("return", new _promise.default(function (resolve) { fileStream.on('data', function (chunk) { return bar.tick(chunk.length); }).on('end', function () { fileStream.unpipe(writeStream); writeStream.close(); resolve(); }).pipe(writeStream); })); case 7: case "end": return _context.stop(); } } }, _callee, this); })); return function copy(_x) { return _copy.apply(this, arguments); }; }() }, { key: "exists", value: function () { var _exists = (0, _asyncToGenerator2.default)( /*#__PURE__*/ _regenerator.default.mark(function _callee2(uri) { var stat; return _regenerator.default.wrap(function _callee2$(_context2) { while (1) { switch (_context2.prev = _context2.next) { case 0: _context2.prev = 0; _context2.next = 3; return this._fileStats(uri); case 3: stat = _context2.sent; return _context2.abrupt("return", stat); case 7: _context2.prev = 7; _context2.t0 = _context2["catch"](0); return _context2.abrupt("return", false); case 10: case "end": return _context2.stop(); } } }, _callee2, this, [[0, 7]]); })); return function exists(_x2) { return _exists.apply(this, arguments); }; }() }, { key: "delete", value: function _delete(inputFolder) { // const parentDir = this._searchForParentDir(inputFolder) // const uriToDelete = parentDir !== this.filename // ? parentDir // : this.filename return this._del(_path.default.join(inputFolder, this.filename // uriToDelete )); } }, { key: "_del", value: function _del(URI) { return _fsExtra.default.remove(URI); } }, { key: "_searchForParentDir", value: function _searchForParentDir(inputFolder) { return _path.default.relative(inputFolder, this.fileUri).split('/')[0]; } }, { key: "_fileStats", value: function _fileStats(_uri) { return new _promise.default(function (resolve, reject) { _fsExtra.default.stat(_uri, function (err, stat) { if (err) return reject(err); resolve(stat); }); }); } }]); return FileStream; }(); exports.default = FileStream; //# sourceMappingURL=FileStream.js.map