oblecto 0.2.8 → 0.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (167) hide show
  1. package/Oblecto-Web/dist/web/index.html +24 -3
  2. package/Oblecto-Web/dist/web/static/index-C-JsqHHk.css +1 -0
  3. package/Oblecto-Web/dist/web/static/index-DSZgpOOu.js +576 -0
  4. package/README.md +43 -7
  5. package/dist/bin/oblecto.js +12468 -61
  6. package/dist/index.js +10676 -6
  7. package/package.json +68 -36
  8. package/res/AGENTS.md +8 -0
  9. package/res/config.json +34 -7
  10. package/Oblecto-Web/LICENSE +0 -674
  11. package/Oblecto-Web/README.md +0 -20
  12. package/Oblecto-Web/dist/web/static/css/app.921835f8c2878caee6d1085d9982fa86.css +0 -1
  13. package/Oblecto-Web/dist/web/static/css/app.921835f8c2878caee6d1085d9982fa86.css.map +0 -1
  14. package/Oblecto-Web/dist/web/static/js/app.758b833f6395444695b6.js +0 -6896
  15. package/Oblecto-Web/dist/web/static/js/app.758b833f6395444695b6.js.map +0 -1
  16. package/Oblecto-Web/dist/web/static/js/manifest.d327d604ee57c29a75d0.js +0 -154
  17. package/Oblecto-Web/dist/web/static/js/manifest.d327d604ee57c29a75d0.js.map +0 -1
  18. package/Oblecto-Web/dist/web/static/js/vendor.84f1e8002f100f63d6ef.js +0 -32455
  19. package/Oblecto-Web/dist/web/static/js/vendor.84f1e8002f100f63d6ef.js.map +0 -1
  20. package/Oblecto-Web/package.json +0 -118
  21. package/dist/bin/cliManager.js +0 -102
  22. package/dist/bin/scripts/adduser.js +0 -50
  23. package/dist/bin/scripts/changepassword.js +0 -48
  24. package/dist/bin/scripts/deluser.js +0 -34
  25. package/dist/bin/scripts/helpers/argumentError.js +0 -12
  26. package/dist/bin/scripts/helpers/generateAssetDirectories.js +0 -37
  27. package/dist/bin/scripts/init/assets.js +0 -24
  28. package/dist/bin/scripts/init/database.js +0 -21
  29. package/dist/bin/scripts/init/general.js +0 -54
  30. package/dist/bin/scripts/init/index.js +0 -26
  31. package/dist/bin/scripts/removepassword.js +0 -42
  32. package/dist/config.js +0 -45
  33. package/dist/core/graphical.js +0 -179
  34. package/dist/core/index.js +0 -24
  35. package/dist/lib/artwork/ArtworkScaler.js +0 -31
  36. package/dist/lib/artwork/ArtworkUtils.js +0 -35
  37. package/dist/lib/artwork/movies/AggregateMovieArtworkRetriever.js +0 -58
  38. package/dist/lib/artwork/movies/MovieArtworkCollector.js +0 -93
  39. package/dist/lib/artwork/movies/MovieArtworkDownloader.js +0 -65
  40. package/dist/lib/artwork/movies/artworkRetrievers/FanarttvMovieArtworkRetriever.js +0 -57
  41. package/dist/lib/artwork/movies/artworkRetrievers/TmdbMovieArtworkRetriever.js +0 -47
  42. package/dist/lib/artwork/series/AggregateSeriesArtworkRetriever.js +0 -58
  43. package/dist/lib/artwork/series/SeriesArtworkCollector.js +0 -95
  44. package/dist/lib/artwork/series/SeriesArtworkDownloader.js +0 -62
  45. package/dist/lib/artwork/series/artworkRetrievers/FanarttvSeriesArtworkRetriever.js +0 -44
  46. package/dist/lib/artwork/series/artworkRetrievers/TmdbSeriesArtworkRetriever.js +0 -64
  47. package/dist/lib/artwork/series/artworkRetrievers/TvdbSeriesArtworkRetriever.js +0 -51
  48. package/dist/lib/cleaners/FileCleaner.js +0 -56
  49. package/dist/lib/cleaners/MovieCleaner.js +0 -42
  50. package/dist/lib/cleaners/SeriesCleaner.js +0 -70
  51. package/dist/lib/common/AggregateIdentifier.js +0 -53
  52. package/dist/lib/common/AggregateUpdateRetriever.js +0 -43
  53. package/dist/lib/downloader/index.js +0 -59
  54. package/dist/lib/errors/DebugExtendableError.js +0 -20
  55. package/dist/lib/errors/ExtendableError.js +0 -22
  56. package/dist/lib/errors/FileExistsError.js +0 -14
  57. package/dist/lib/errors/IdentificationError.js +0 -14
  58. package/dist/lib/errors/InfoExtendableError.js +0 -20
  59. package/dist/lib/errors/VideoAnalysisError.js +0 -14
  60. package/dist/lib/errors/VideoIdentificationError.js +0 -14
  61. package/dist/lib/errors/WarnExtendableError.js +0 -20
  62. package/dist/lib/federation/client/FederationClient.js +0 -127
  63. package/dist/lib/federation/client/FederationClientController.js +0 -45
  64. package/dist/lib/federation/client/FederationDataClient.js +0 -56
  65. package/dist/lib/federation/client/FederationMediaClient.js +0 -70
  66. package/dist/lib/federation/server/FederationController.js +0 -32
  67. package/dist/lib/federation/server/FederationDataServer.js +0 -22
  68. package/dist/lib/federation/server/FederationDataServerConnection.js +0 -96
  69. package/dist/lib/federation/server/FederationMediaServer.js +0 -22
  70. package/dist/lib/federation/server/FederationMediaServerConnection.js +0 -83
  71. package/dist/lib/federation/server/FederationServer.js +0 -40
  72. package/dist/lib/federation/server/FederationServerConnection.js +0 -97
  73. package/dist/lib/federationindexer/FederationEpisodeIndexer.js +0 -65
  74. package/dist/lib/federationindexer/FederationMovieIndexer.js +0 -48
  75. package/dist/lib/indexers/MediaIdentifier.js +0 -15
  76. package/dist/lib/indexers/files/FileIndexer.js +0 -103
  77. package/dist/lib/indexers/files/cleaner.js +0 -43
  78. package/dist/lib/indexers/movies/AggregateMovieIdentifier.js +0 -45
  79. package/dist/lib/indexers/movies/MovieCollector.js +0 -65
  80. package/dist/lib/indexers/movies/MovieIdentifier.js +0 -22
  81. package/dist/lib/indexers/movies/MovieIndexer.js +0 -47
  82. package/dist/lib/indexers/movies/identifiers/TmdbMovieidentifier.js +0 -50
  83. package/dist/lib/indexers/series/AggregateEpisodeIdentifier.js +0 -46
  84. package/dist/lib/indexers/series/AggregateSeriesIdentifier.js +0 -46
  85. package/dist/lib/indexers/series/EpisodeIdentifier.js +0 -24
  86. package/dist/lib/indexers/series/SeriesCollector.js +0 -65
  87. package/dist/lib/indexers/series/SeriesIdentifer.js +0 -23
  88. package/dist/lib/indexers/series/SeriesIndexer.js +0 -134
  89. package/dist/lib/indexers/series/identifiers/TmdbEpisodeIdentifier.js +0 -38
  90. package/dist/lib/indexers/series/identifiers/TmdbSeriesIdentifier.js +0 -66
  91. package/dist/lib/indexers/series/identifiers/TvdbEpisodeIdentifier.js +0 -71
  92. package/dist/lib/indexers/series/identifiers/TvdbSeriesIdentifier.js +0 -82
  93. package/dist/lib/oblecto/index.js +0 -125
  94. package/dist/lib/queue/index.js +0 -82
  95. package/dist/lib/realtime/RealtimeClient.js +0 -137
  96. package/dist/lib/realtime/RealtimeController.js +0 -50
  97. package/dist/lib/sets/tv/MovieSetCollector.js +0 -49
  98. package/dist/lib/streamSessions/StreamSession.js +0 -148
  99. package/dist/lib/streamSessions/StreamSessionController.js +0 -78
  100. package/dist/lib/streamSessions/StreamSessionTypes/DirectHttpStreamSession.js +0 -105
  101. package/dist/lib/streamSessions/StreamSessionTypes/DirectStreamSession.js +0 -47
  102. package/dist/lib/streamSessions/StreamSessionTypes/HLSStreamer.js +0 -126
  103. package/dist/lib/streamSessions/StreamSessionTypes/RecodeFederationStreamSession.js +0 -72
  104. package/dist/lib/streamSessions/StreamSessionTypes/RecodeStreamSession.js +0 -65
  105. package/dist/lib/updaters/files/FileUpdateCollector.js +0 -44
  106. package/dist/lib/updaters/files/FileUpdater.js +0 -194
  107. package/dist/lib/updaters/movies/AggregateMovieUpdateRetriever.js +0 -44
  108. package/dist/lib/updaters/movies/MovieUpdateCollector.js +0 -48
  109. package/dist/lib/updaters/movies/MovieUpdater.js +0 -38
  110. package/dist/lib/updaters/movies/informationRetrievers/TmdbMovieRetriever.js +0 -42
  111. package/dist/lib/updaters/series/AggregateEpisodeUpdateRetriever.js +0 -41
  112. package/dist/lib/updaters/series/AggregateSeriesUpdateRetriever.js +0 -44
  113. package/dist/lib/updaters/series/SeriesUpdateCollector.js +0 -79
  114. package/dist/lib/updaters/series/SeriesUpdater.js +0 -84
  115. package/dist/lib/updaters/series/informationRetrievers/TmdbEpisodeRetriever.js +0 -66
  116. package/dist/lib/updaters/series/informationRetrievers/TmdbSeriesRetriever.js +0 -63
  117. package/dist/lib/updaters/series/informationRetrievers/TvdbEpisodeRetriever.js +0 -38
  118. package/dist/lib/updaters/series/informationRetrievers/TvdbSeriesRetriever.js +0 -50
  119. package/dist/models/episode.js +0 -62
  120. package/dist/models/episodeFiles.js +0 -14
  121. package/dist/models/file.js +0 -32
  122. package/dist/models/movie.js +0 -35
  123. package/dist/models/movieFiles.js +0 -14
  124. package/dist/models/movieSet.js +0 -26
  125. package/dist/models/series.js +0 -55
  126. package/dist/models/seriesSet.js +0 -17
  127. package/dist/models/stream.js +0 -81
  128. package/dist/models/trackEpisode.js +0 -17
  129. package/dist/models/trackEpisodes.js +0 -8
  130. package/dist/models/trackMovie.js +0 -17
  131. package/dist/models/trackMovies.js +0 -8
  132. package/dist/models/tvshow.js +0 -46
  133. package/dist/models/tvshowSet.js +0 -8
  134. package/dist/models/user.js +0 -26
  135. package/dist/submodules/REST/index.js +0 -59
  136. package/dist/submodules/REST/middleware/auth.js +0 -28
  137. package/dist/submodules/REST/routes/auth.js +0 -48
  138. package/dist/submodules/REST/routes/clients.js +0 -54
  139. package/dist/submodules/REST/routes/episodes.js +0 -275
  140. package/dist/submodules/REST/routes/files.js +0 -92
  141. package/dist/submodules/REST/routes/index.js +0 -48
  142. package/dist/submodules/REST/routes/movies.js +0 -305
  143. package/dist/submodules/REST/routes/sets.js +0 -35
  144. package/dist/submodules/REST/routes/settings/index.js +0 -22
  145. package/dist/submodules/REST/routes/settings/maintenance.js +0 -87
  146. package/dist/submodules/REST/routes/settings/misc.js +0 -38
  147. package/dist/submodules/REST/routes/settings/sources.js +0 -61
  148. package/dist/submodules/REST/routes/tvshows.js +0 -140
  149. package/dist/submodules/REST/routes/users.js +0 -107
  150. package/dist/submodules/REST/routes/web.js +0 -43
  151. package/dist/submodules/axiosTimeout.js +0 -30
  152. package/dist/submodules/database.js +0 -180
  153. package/dist/submodules/ffmpeg.js +0 -23
  154. package/dist/submodules/ffprobe.js +0 -22
  155. package/dist/submodules/guessit.js +0 -48
  156. package/dist/submodules/handlers/DirectStreamer.js +0 -68
  157. package/dist/submodules/handlers/FFMPEGHandlers/DvdStreamer.js +0 -52
  158. package/dist/submodules/handlers/FFMPEGHandlers/RemuxStreamer.js +0 -33
  159. package/dist/submodules/handlers/FFMPEGHandlers/TranscodeStreamer.js +0 -33
  160. package/dist/submodules/handlers/FFMPEGStreamer.js +0 -56
  161. package/dist/submodules/handlers/FederationStreamer.js +0 -23
  162. package/dist/submodules/handlers/HLSSessionHandler.js +0 -141
  163. package/dist/submodules/logger/index.js +0 -43
  164. package/dist/submodules/promiseTimeout.js +0 -28
  165. package/dist/submodules/zeroconf.js +0 -19
  166. package/dist/transcoders/dvd.js +0 -26
  167. package/dist/transcoders/index.js +0 -42
@@ -1,56 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = void 0;
7
-
8
- var _DvdStreamer = _interopRequireDefault(require("./FFMPEGHandlers/DvdStreamer"));
9
-
10
- var _RemuxStreamer = _interopRequireDefault(require("./FFMPEGHandlers/RemuxStreamer"));
11
-
12
- var _TranscodeStreamer = _interopRequireDefault(require("./FFMPEGHandlers/TranscodeStreamer"));
13
-
14
- var _config = _interopRequireDefault(require("../../config"));
15
-
16
- var _FederationStreamer = _interopRequireDefault(require("./FederationStreamer"));
17
-
18
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
19
-
20
- function requireTranscode(video) {
21
- if (_config.default.transcoding.transcodeEverything) return true;
22
- if (!_config.default.transcoding.doRealTimeTranscode) return false;
23
-
24
- if (video.extension === 'avi') {
25
- return true;
26
- }
27
-
28
- if (video.videoCodec === 'hevc') {
29
- return true;
30
- }
31
-
32
- return false;
33
- }
34
-
35
- class _default {
36
- static async streamFile(oblecto, video, offset, req, res) {
37
- if (video.host !== 'local') {
38
- return _FederationStreamer.default.streamFile(oblecto, video, offset || 0, req, res);
39
- }
40
-
41
- if (video.extension === 'iso') {
42
- await _DvdStreamer.default.DvdSteamer(oblecto, video, offset, req, res);
43
- return;
44
- }
45
-
46
- if (requireTranscode(video)) {
47
- await _TranscodeStreamer.default.TranscodeStreamer(oblecto, video, offset, req, res);
48
- return;
49
- }
50
-
51
- await _RemuxStreamer.default.RemuxSteamer(oblecto, video, offset, req, res);
52
- }
53
-
54
- }
55
-
56
- exports.default = _default;
@@ -1,23 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = void 0;
7
-
8
- var _FederationMediaClient = _interopRequireDefault(require("../../lib/federation/client/FederationMediaClient"));
9
-
10
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
11
-
12
- class FederationStreamer {
13
- static async streamFile(oblecto, video, offset, req, res) {
14
- let federationClient = new _FederationMediaClient.default(oblecto, video.host);
15
- await federationClient.connect();
16
- await federationClient.setStreamDestination(res);
17
- await federationClient.setStreamOffset(offset);
18
- await federationClient.startStreamFile(video.path);
19
- }
20
-
21
- }
22
-
23
- exports.default = FederationStreamer;
@@ -1,141 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = void 0;
7
-
8
- var _nodeUuid = _interopRequireDefault(require("node-uuid"));
9
-
10
- var _database = _interopRequireDefault(require("../database"));
11
-
12
- var _ffmpeg = _interopRequireDefault(require("../ffmpeg"));
13
-
14
- var _mkdirp = _interopRequireDefault(require("mkdirp"));
15
-
16
- var _os = _interopRequireDefault(require("os"));
17
-
18
- var _fs = _interopRequireDefault(require("fs"));
19
-
20
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
21
-
22
- class _default {
23
- constructor(fileId) {
24
- this.sessionId = _nodeUuid.default.v4();
25
- this.fileId = fileId;
26
- this.paused = true;
27
- this.maxGenCount = 8;
28
- this.timeOffset = 0;
29
- this.lastTime;
30
- }
31
-
32
- async init() {
33
- this.file = await _database.default.file.findByPk(this.fileId);
34
-
35
- _mkdirp.default.sync(`${_os.default.tmpdir()}/oblecto/sessions/${this.sessionId}`);
36
-
37
- this.lastTime = new Date().getTime();
38
- }
39
-
40
- set offset(time) {
41
- if (this.remuxer) {
42
- return false;
43
- }
44
-
45
- return this.timeOffset = time;
46
- }
47
-
48
- resetTimeout() {
49
- this.lastTime = new Date().getTime();
50
- }
51
-
52
- async start() {
53
- await this.init();
54
- this.remuxer = (0, _ffmpeg.default)(this.file.path).videoCodec('copy').audioCodec('copy').seekInput(this.timeOffset).outputOptions(['-hls_time', '10', '-hls_list_size', '10', '-hls_playlist_type event', '-hls_base_url', `/HLS/${this.sessionId}/segment/`, '-hls_segment_filename', `${_os.default.tmpdir()}/oblecto/sessions/${this.sessionId}/%03d.ts`]) // setup event handlers
55
- // save to stream
56
- .on('start', cmd => {
57
- console.log('--- ffmpeg start process ---');
58
- console.log(`cmd: ${cmd}`);
59
- this.paused = false;
60
- }).on('end', () => {
61
- console.log('--- end processing ---');
62
- }).on('error', err => {
63
- console.log('--- ffmpeg meets error ---');
64
- console.log(err);
65
- }).save(`${_os.default.tmpdir()}/oblecto/sessions/${this.sessionId}/index.m3u8`);
66
- this.segmentChecker = setInterval(() => {
67
- // First check if the session has timed out. If it has, we don't really need to bother with the generation of
68
- // individual segments and just deleted the whole session.
69
- if (new Date().getTime() - this.lastTime > 120000) {
70
- console.log('HLS Session', this.sessionId, 'has expired. Clearing now.');
71
- clearInterval(this.segmentChecker);
72
- this.clearSession();
73
- return;
74
- }
75
-
76
- _fs.default.readdir(`${_os.default.tmpdir()}/oblecto/sessions/${this.sessionId}/`, (err, files) => {
77
- if (err) {
78
- return false;
79
- } // This count will also include generated subtitle (.vtt) files and the stream index (.m3u8) files.
80
- // Not only the video segment (.ts) files.
81
- // However, to prevent oblecto from consuming all available ram, oblecto should pause the generation
82
- // of video segments if enough have been generated.
83
- // Generation will be resumed once non segment before the request segment has been requested.
84
- // This will then also cause the first segment in the sequence to be deleted from ram at it will most
85
- // likely not be needed anymore.
86
-
87
-
88
- const segments = files.filter(s => s.includes('.ts'));
89
-
90
- if (segments.length > this.maxGenCount) {
91
- this.pauseSegmenting();
92
- } else {
93
- this.resumeSegmenting();
94
- }
95
- });
96
- }, 1000);
97
- }
98
-
99
- clearSession() {
100
- this.remuxer.kill();
101
-
102
- _fs.default.readdir(`${_os.default.tmpdir()}/oblecto/sessions/${this.sessionId}/`, (err, files) => {
103
- if (err) {
104
- return false;
105
- }
106
-
107
- files.forEach((val, index) => {
108
- _fs.default.unlink(`${_os.default.tmpdir()}/oblecto/sessions/${this.sessionId}/${val}`, err => {
109
- if (err) {
110
- console.error(err);
111
- }
112
- });
113
- });
114
- });
115
-
116
- delete this;
117
- }
118
-
119
- pauseSegmenting() {
120
- if (this.remuxer) {
121
- this.remuxer.kill('SIGSTOP');
122
- this.paused = true;
123
- return true;
124
- }
125
-
126
- return false;
127
- }
128
-
129
- resumeSegmenting() {
130
- if (this.remuxer) {
131
- this.remuxer.kill('SIGCONT');
132
- this.paused = false;
133
- return true;
134
- }
135
-
136
- return false;
137
- }
138
-
139
- }
140
-
141
- exports.default = _default;
@@ -1,43 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = void 0;
7
-
8
- var _events = require("events");
9
-
10
- class Logger extends _events.EventEmitter {
11
- constructor() {
12
- super();
13
- this.silent = false;
14
- this.on('log', log => {
15
- if (this.silent) return; //if (log.level === 'DEBUG') return;
16
-
17
- if (log instanceof Error) {
18
- console.log(log.level, log);
19
- return;
20
- }
21
-
22
- console.log(log.level, ...log.messages);
23
- });
24
- }
25
-
26
- log(level, ...messages) {
27
- // If an error was passed right into the log function
28
- if (level instanceof Error) {
29
- this.emit('log', level);
30
- return;
31
- }
32
-
33
- this.emit('log', {
34
- level,
35
- messages
36
- });
37
- }
38
-
39
- }
40
-
41
- var _default = new Logger();
42
-
43
- exports.default = _default;
@@ -1,28 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = _default;
7
-
8
- var _WarnExtendableError = _interopRequireDefault(require("../lib/errors/WarnExtendableError"));
9
-
10
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
11
-
12
- function _default(promise, time) {
13
- return new Promise(function (resolve, reject) {
14
- let timedout = false;
15
- let timeout = setTimeout(() => {
16
- timedout = true;
17
- reject(new _WarnExtendableError.default('A promise has timed out'));
18
- }, time || 10000);
19
- promise.then(response => {
20
- if (timedout) return;
21
- clearTimeout(timeout);
22
- resolve(response);
23
- }).catch(err => {
24
- clearTimeout(timeout);
25
- reject(err);
26
- });
27
- });
28
- }
@@ -1,19 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = void 0;
7
-
8
- var _mdns = _interopRequireDefault(require("mdns"));
9
-
10
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
11
-
12
- var _default = {
13
- ad: undefined,
14
- start: function (port) {
15
- this.ad = _mdns.default.createAdvertisement(_mdns.default.tcp('oblecto'), port);
16
- this.ad.start();
17
- }
18
- };
19
- exports.default = _default;
@@ -1,26 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = void 0;
7
-
8
- var _handbrakeJs = _interopRequireDefault(require("handbrake-js"));
9
-
10
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
11
-
12
- var _default = {
13
- transcode: (input, output, callback) => {
14
- _handbrakeJs.default.spawn({
15
- input,
16
- output,
17
- 'main-feature': true
18
- }).on('error', err => {
19
- console.log('Error transcoding', input, err);
20
- callback(); // invalid user input, no video found etc
21
- }).on('progress', progress => {
22
- console.log('Percent complete: %s, ETA: %s, File: %s', progress.percentComplete, progress.eta, input);
23
- }).on('end', callback);
24
- }
25
- };
26
- exports.default = _default;
@@ -1,42 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = void 0;
7
-
8
- var _path = _interopRequireDefault(require("path"));
9
-
10
- var _dvd = _interopRequireDefault(require("./dvd"));
11
-
12
- var _fs = _interopRequireDefault(require("fs"));
13
-
14
- var _config = _interopRequireDefault(require("../config"));
15
-
16
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
17
-
18
- var _default = {
19
- transcode: (input, callback) => {
20
- let parsed = _path.default.parse(input);
21
-
22
- let extension = parsed.ext.replace('.', '').toLowerCase();
23
-
24
- switch (extension) {
25
- case 'iso':
26
- _fs.default.exists(input.replace(parsed.ext, '.' + _config.default.transcoding[extension]), function (exists) {
27
- if (exists) return callback();
28
- console.log(input, ' is an iso disk image. Starting transcode');
29
-
30
- _dvd.default.transcode(input, input.replace(parsed.ext, '.' + _config.default.transcoding[extension]), callback);
31
- });
32
-
33
- break;
34
-
35
- default:
36
- console.log('Cannot transcode', input);
37
- callback();
38
- break;
39
- }
40
- }
41
- };
42
- exports.default = _default;