ez-organizer
Version:
Organise tvshows automatically (part of the 'ez' programs)
404 lines (325 loc) • 13.3 kB
JavaScript
"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