UNPKG

ez-organizer

Version:

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

404 lines (325 loc) 13.3 kB
"use strict"; var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard"); var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray")); var _getIterator2 = _interopRequireDefault(require("@babel/runtime/core-js/get-iterator")); var _map = _interopRequireDefault(require("@babel/runtime/core-js/map")); var _promise = _interopRequireDefault(require("@babel/runtime/core-js/promise")); var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator")); 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 _Folder = _interopRequireDefault(require("modules/Folder")); var videoExtensions = _interopRequireWildcard(require("helpers/videoExtensions")); var episode = _interopRequireWildcard(require("helpers/episode")); var _Episode = _interopRequireDefault(require("modules/Episode")); var _Show = _interopRequireDefault(require("modules/Show")); var folderHelper = _interopRequireWildcard(require("helpers/folder")); var AppController = /*#__PURE__*/ function () { function AppController() { var _inputDir = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : process.cwd(); var _outputDir = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null; (0, _classCallCheck2.default)(this, AppController); this.inputDir = _inputDir; this.outputDir = _outputDir; } (0, _createClass2.default)(AppController, [{ key: "organizeShows", value: function () { var _organizeShows = (0, _asyncToGenerator2.default)( /*#__PURE__*/ _regenerator.default.mark(function _callee() { var parseFolder; return _regenerator.default.wrap(function _callee$(_context) { while (1) { switch (_context.prev = _context.next) { case 0: _context.next = 2; return this._processFolder(); case 2: parseFolder = _context.sent; if (parseFolder.totalFiles) { _context.next = 5; break; } return _context.abrupt("return", console.log(' All set no files to copy')); case 5: console.log(" Copying a total of ".concat(parseFolder.totalFiles, " files")); this._createDirStructure(parseFolder.showCollection); _context.next = 9; return this._copyFiles(parseFolder.showCollection); case 9: case "end": return _context.stop(); } } }, _callee, this); })); return function organizeShows() { return _organizeShows.apply(this, arguments); }; }() }, { key: "_processFolder", value: function () { var _processFolder2 = (0, _asyncToGenerator2.default)( /*#__PURE__*/ _regenerator.default.mark(function _callee2() { var _this = this; var inputDir, allEpisodes, episodes, showCollection; return _regenerator.default.wrap(function _callee2$(_context2) { while (1) { switch (_context2.prev = _context2.next) { case 0: _context2.next = 2; return new _Folder.default(this.inputDir, videoExtensions.getFilterVideosList()).load(); case 2: inputDir = _context2.sent; allEpisodes = inputDir.getStructure().filter(function (file) { return episode.isEpisode(file); }).map(function (file) { return new _Episode.default(file, _this.outputDir); }); _context2.next = 6; return _promise.default.all(allEpisodes.map(function (episode) { return episode.allowedToCopy().then(function (allowed) { return allowed ? episode : null; }); })).then(function (episodes) { return episodes.filter(function (episode) { return episode; }); }); case 6: episodes = _context2.sent; showCollection = episodes.reduce(function (showCollection, episode) { var episodeData = episode.getEpisodeData(); var showName = episodeData.showName; var show = showCollection.get(showName) || showCollection.set(showName, new _Show.default(showName)).get(showName); show.addEpisode(episode); return showCollection; }, new _map.default()); return _context2.abrupt("return", { showCollection: showCollection, totalFiles: episodes.length }); case 9: case "end": return _context2.stop(); } } }, _callee2, this); })); return function _processFolder() { return _processFolder2.apply(this, arguments); }; }() }, { key: "_createDirStructure", value: function _createDirStructure(showCollection) { var _iteratorNormalCompletion = true; var _didIteratorError = false; var _iteratorError = undefined; try { for (var _iterator = (0, _getIterator2.default)(showCollection.values()), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) { var _show = _step.value; var _iteratorNormalCompletion2 = true; var _didIteratorError2 = false; var _iteratorError2 = undefined; try { for (var _iterator2 = (0, _getIterator2.default)(_show.seasons.values()), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) { var _season = _step2.value; var outputDir = (0, _toConsumableArray2.default)(_season.values())[0].outpuDirURI; folderHelper.createDir(outputDir); } } catch (err) { _didIteratorError2 = true; _iteratorError2 = err; } finally { try { if (!_iteratorNormalCompletion2 && _iterator2.return != null) { _iterator2.return(); } } finally { if (_didIteratorError2) { throw _iteratorError2; } } } } } catch (err) { _didIteratorError = true; _iteratorError = err; } finally { try { if (!_iteratorNormalCompletion && _iterator.return != null) { _iterator.return(); } } finally { if (_didIteratorError) { throw _iteratorError; } } } } }, { key: "_copyFiles", value: function () { var _copyFiles2 = (0, _asyncToGenerator2.default)( /*#__PURE__*/ _regenerator.default.mark(function _callee3(showCollection) { var count, _iteratorNormalCompletion3, _didIteratorError3, _iteratorError3, _iterator3, _step3, _show2, _iteratorNormalCompletion4, _didIteratorError4, _iteratorError4, _iterator4, _step4, _season2, _iteratorNormalCompletion5, _didIteratorError5, _iteratorError5, _iterator5, _step5, _episode2; return _regenerator.default.wrap(function _callee3$(_context3) { while (1) { switch (_context3.prev = _context3.next) { case 0: count = 1; _iteratorNormalCompletion3 = true; _didIteratorError3 = false; _iteratorError3 = undefined; _context3.prev = 4; _iterator3 = (0, _getIterator2.default)(showCollection.values()); case 6: if (_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done) { _context3.next = 64; break; } _show2 = _step3.value; _iteratorNormalCompletion4 = true; _didIteratorError4 = false; _iteratorError4 = undefined; _context3.prev = 11; _iterator4 = (0, _getIterator2.default)(_show2.seasons.values()); case 13: if (_iteratorNormalCompletion4 = (_step4 = _iterator4.next()).done) { _context3.next = 47; break; } _season2 = _step4.value; _iteratorNormalCompletion5 = true; _didIteratorError5 = false; _iteratorError5 = undefined; _context3.prev = 18; _iterator5 = (0, _getIterator2.default)(_season2.values()); case 20: if (_iteratorNormalCompletion5 = (_step5 = _iterator5.next()).done) { _context3.next = 30; break; } _episode2 = _step5.value; _context3.next = 24; return _episode2.stream.copy(count); case 24: _context3.next = 26; return _episode2.stream.delete(this.inputDir); case 26: count++; case 27: _iteratorNormalCompletion5 = true; _context3.next = 20; break; case 30: _context3.next = 36; break; case 32: _context3.prev = 32; _context3.t0 = _context3["catch"](18); _didIteratorError5 = true; _iteratorError5 = _context3.t0; case 36: _context3.prev = 36; _context3.prev = 37; if (!_iteratorNormalCompletion5 && _iterator5.return != null) { _iterator5.return(); } case 39: _context3.prev = 39; if (!_didIteratorError5) { _context3.next = 42; break; } throw _iteratorError5; case 42: return _context3.finish(39); case 43: return _context3.finish(36); case 44: _iteratorNormalCompletion4 = true; _context3.next = 13; break; case 47: _context3.next = 53; break; case 49: _context3.prev = 49; _context3.t1 = _context3["catch"](11); _didIteratorError4 = true; _iteratorError4 = _context3.t1; case 53: _context3.prev = 53; _context3.prev = 54; if (!_iteratorNormalCompletion4 && _iterator4.return != null) { _iterator4.return(); } case 56: _context3.prev = 56; if (!_didIteratorError4) { _context3.next = 59; break; } throw _iteratorError4; case 59: return _context3.finish(56); case 60: return _context3.finish(53); case 61: _iteratorNormalCompletion3 = true; _context3.next = 6; break; case 64: _context3.next = 70; break; case 66: _context3.prev = 66; _context3.t2 = _context3["catch"](4); _didIteratorError3 = true; _iteratorError3 = _context3.t2; case 70: _context3.prev = 70; _context3.prev = 71; if (!_iteratorNormalCompletion3 && _iterator3.return != null) { _iterator3.return(); } case 73: _context3.prev = 73; if (!_didIteratorError3) { _context3.next = 76; break; } throw _iteratorError3; case 76: return _context3.finish(73); case 77: return _context3.finish(70); case 78: case "end": return _context3.stop(); } } }, _callee3, this, [[4, 66, 70, 78], [11, 49, 53, 61], [18, 32, 36, 44], [37,, 39, 43], [54,, 56, 60], [71,, 73, 77]]); })); return function _copyFiles(_x) { return _copyFiles2.apply(this, arguments); }; }() }]); return AppController; }(); exports.default = AppController; //# sourceMappingURL=app.controller.js.map