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.
- package/Oblecto-Web/dist/web/index.html +24 -3
- package/Oblecto-Web/dist/web/static/index-C-JsqHHk.css +1 -0
- package/Oblecto-Web/dist/web/static/index-DSZgpOOu.js +576 -0
- package/README.md +43 -7
- package/dist/bin/oblecto.js +12468 -61
- package/dist/index.js +10676 -6
- package/package.json +68 -36
- package/res/AGENTS.md +8 -0
- package/res/config.json +34 -7
- package/Oblecto-Web/LICENSE +0 -674
- package/Oblecto-Web/README.md +0 -20
- package/Oblecto-Web/dist/web/static/css/app.921835f8c2878caee6d1085d9982fa86.css +0 -1
- package/Oblecto-Web/dist/web/static/css/app.921835f8c2878caee6d1085d9982fa86.css.map +0 -1
- package/Oblecto-Web/dist/web/static/js/app.758b833f6395444695b6.js +0 -6896
- package/Oblecto-Web/dist/web/static/js/app.758b833f6395444695b6.js.map +0 -1
- package/Oblecto-Web/dist/web/static/js/manifest.d327d604ee57c29a75d0.js +0 -154
- package/Oblecto-Web/dist/web/static/js/manifest.d327d604ee57c29a75d0.js.map +0 -1
- package/Oblecto-Web/dist/web/static/js/vendor.84f1e8002f100f63d6ef.js +0 -32455
- package/Oblecto-Web/dist/web/static/js/vendor.84f1e8002f100f63d6ef.js.map +0 -1
- package/Oblecto-Web/package.json +0 -118
- package/dist/bin/cliManager.js +0 -102
- package/dist/bin/scripts/adduser.js +0 -50
- package/dist/bin/scripts/changepassword.js +0 -48
- package/dist/bin/scripts/deluser.js +0 -34
- package/dist/bin/scripts/helpers/argumentError.js +0 -12
- package/dist/bin/scripts/helpers/generateAssetDirectories.js +0 -37
- package/dist/bin/scripts/init/assets.js +0 -24
- package/dist/bin/scripts/init/database.js +0 -21
- package/dist/bin/scripts/init/general.js +0 -54
- package/dist/bin/scripts/init/index.js +0 -26
- package/dist/bin/scripts/removepassword.js +0 -42
- package/dist/config.js +0 -45
- package/dist/core/graphical.js +0 -179
- package/dist/core/index.js +0 -24
- package/dist/lib/artwork/ArtworkScaler.js +0 -31
- package/dist/lib/artwork/ArtworkUtils.js +0 -35
- package/dist/lib/artwork/movies/AggregateMovieArtworkRetriever.js +0 -58
- package/dist/lib/artwork/movies/MovieArtworkCollector.js +0 -93
- package/dist/lib/artwork/movies/MovieArtworkDownloader.js +0 -65
- package/dist/lib/artwork/movies/artworkRetrievers/FanarttvMovieArtworkRetriever.js +0 -57
- package/dist/lib/artwork/movies/artworkRetrievers/TmdbMovieArtworkRetriever.js +0 -47
- package/dist/lib/artwork/series/AggregateSeriesArtworkRetriever.js +0 -58
- package/dist/lib/artwork/series/SeriesArtworkCollector.js +0 -95
- package/dist/lib/artwork/series/SeriesArtworkDownloader.js +0 -62
- package/dist/lib/artwork/series/artworkRetrievers/FanarttvSeriesArtworkRetriever.js +0 -44
- package/dist/lib/artwork/series/artworkRetrievers/TmdbSeriesArtworkRetriever.js +0 -64
- package/dist/lib/artwork/series/artworkRetrievers/TvdbSeriesArtworkRetriever.js +0 -51
- package/dist/lib/cleaners/FileCleaner.js +0 -56
- package/dist/lib/cleaners/MovieCleaner.js +0 -42
- package/dist/lib/cleaners/SeriesCleaner.js +0 -70
- package/dist/lib/common/AggregateIdentifier.js +0 -53
- package/dist/lib/common/AggregateUpdateRetriever.js +0 -43
- package/dist/lib/downloader/index.js +0 -59
- package/dist/lib/errors/DebugExtendableError.js +0 -20
- package/dist/lib/errors/ExtendableError.js +0 -22
- package/dist/lib/errors/FileExistsError.js +0 -14
- package/dist/lib/errors/IdentificationError.js +0 -14
- package/dist/lib/errors/InfoExtendableError.js +0 -20
- package/dist/lib/errors/VideoAnalysisError.js +0 -14
- package/dist/lib/errors/VideoIdentificationError.js +0 -14
- package/dist/lib/errors/WarnExtendableError.js +0 -20
- package/dist/lib/federation/client/FederationClient.js +0 -127
- package/dist/lib/federation/client/FederationClientController.js +0 -45
- package/dist/lib/federation/client/FederationDataClient.js +0 -56
- package/dist/lib/federation/client/FederationMediaClient.js +0 -70
- package/dist/lib/federation/server/FederationController.js +0 -32
- package/dist/lib/federation/server/FederationDataServer.js +0 -22
- package/dist/lib/federation/server/FederationDataServerConnection.js +0 -96
- package/dist/lib/federation/server/FederationMediaServer.js +0 -22
- package/dist/lib/federation/server/FederationMediaServerConnection.js +0 -83
- package/dist/lib/federation/server/FederationServer.js +0 -40
- package/dist/lib/federation/server/FederationServerConnection.js +0 -97
- package/dist/lib/federationindexer/FederationEpisodeIndexer.js +0 -65
- package/dist/lib/federationindexer/FederationMovieIndexer.js +0 -48
- package/dist/lib/indexers/MediaIdentifier.js +0 -15
- package/dist/lib/indexers/files/FileIndexer.js +0 -103
- package/dist/lib/indexers/files/cleaner.js +0 -43
- package/dist/lib/indexers/movies/AggregateMovieIdentifier.js +0 -45
- package/dist/lib/indexers/movies/MovieCollector.js +0 -65
- package/dist/lib/indexers/movies/MovieIdentifier.js +0 -22
- package/dist/lib/indexers/movies/MovieIndexer.js +0 -47
- package/dist/lib/indexers/movies/identifiers/TmdbMovieidentifier.js +0 -50
- package/dist/lib/indexers/series/AggregateEpisodeIdentifier.js +0 -46
- package/dist/lib/indexers/series/AggregateSeriesIdentifier.js +0 -46
- package/dist/lib/indexers/series/EpisodeIdentifier.js +0 -24
- package/dist/lib/indexers/series/SeriesCollector.js +0 -65
- package/dist/lib/indexers/series/SeriesIdentifer.js +0 -23
- package/dist/lib/indexers/series/SeriesIndexer.js +0 -134
- package/dist/lib/indexers/series/identifiers/TmdbEpisodeIdentifier.js +0 -38
- package/dist/lib/indexers/series/identifiers/TmdbSeriesIdentifier.js +0 -66
- package/dist/lib/indexers/series/identifiers/TvdbEpisodeIdentifier.js +0 -71
- package/dist/lib/indexers/series/identifiers/TvdbSeriesIdentifier.js +0 -82
- package/dist/lib/oblecto/index.js +0 -125
- package/dist/lib/queue/index.js +0 -82
- package/dist/lib/realtime/RealtimeClient.js +0 -137
- package/dist/lib/realtime/RealtimeController.js +0 -50
- package/dist/lib/sets/tv/MovieSetCollector.js +0 -49
- package/dist/lib/streamSessions/StreamSession.js +0 -148
- package/dist/lib/streamSessions/StreamSessionController.js +0 -78
- package/dist/lib/streamSessions/StreamSessionTypes/DirectHttpStreamSession.js +0 -105
- package/dist/lib/streamSessions/StreamSessionTypes/DirectStreamSession.js +0 -47
- package/dist/lib/streamSessions/StreamSessionTypes/HLSStreamer.js +0 -126
- package/dist/lib/streamSessions/StreamSessionTypes/RecodeFederationStreamSession.js +0 -72
- package/dist/lib/streamSessions/StreamSessionTypes/RecodeStreamSession.js +0 -65
- package/dist/lib/updaters/files/FileUpdateCollector.js +0 -44
- package/dist/lib/updaters/files/FileUpdater.js +0 -194
- package/dist/lib/updaters/movies/AggregateMovieUpdateRetriever.js +0 -44
- package/dist/lib/updaters/movies/MovieUpdateCollector.js +0 -48
- package/dist/lib/updaters/movies/MovieUpdater.js +0 -38
- package/dist/lib/updaters/movies/informationRetrievers/TmdbMovieRetriever.js +0 -42
- package/dist/lib/updaters/series/AggregateEpisodeUpdateRetriever.js +0 -41
- package/dist/lib/updaters/series/AggregateSeriesUpdateRetriever.js +0 -44
- package/dist/lib/updaters/series/SeriesUpdateCollector.js +0 -79
- package/dist/lib/updaters/series/SeriesUpdater.js +0 -84
- package/dist/lib/updaters/series/informationRetrievers/TmdbEpisodeRetriever.js +0 -66
- package/dist/lib/updaters/series/informationRetrievers/TmdbSeriesRetriever.js +0 -63
- package/dist/lib/updaters/series/informationRetrievers/TvdbEpisodeRetriever.js +0 -38
- package/dist/lib/updaters/series/informationRetrievers/TvdbSeriesRetriever.js +0 -50
- package/dist/models/episode.js +0 -62
- package/dist/models/episodeFiles.js +0 -14
- package/dist/models/file.js +0 -32
- package/dist/models/movie.js +0 -35
- package/dist/models/movieFiles.js +0 -14
- package/dist/models/movieSet.js +0 -26
- package/dist/models/series.js +0 -55
- package/dist/models/seriesSet.js +0 -17
- package/dist/models/stream.js +0 -81
- package/dist/models/trackEpisode.js +0 -17
- package/dist/models/trackEpisodes.js +0 -8
- package/dist/models/trackMovie.js +0 -17
- package/dist/models/trackMovies.js +0 -8
- package/dist/models/tvshow.js +0 -46
- package/dist/models/tvshowSet.js +0 -8
- package/dist/models/user.js +0 -26
- package/dist/submodules/REST/index.js +0 -59
- package/dist/submodules/REST/middleware/auth.js +0 -28
- package/dist/submodules/REST/routes/auth.js +0 -48
- package/dist/submodules/REST/routes/clients.js +0 -54
- package/dist/submodules/REST/routes/episodes.js +0 -275
- package/dist/submodules/REST/routes/files.js +0 -92
- package/dist/submodules/REST/routes/index.js +0 -48
- package/dist/submodules/REST/routes/movies.js +0 -305
- package/dist/submodules/REST/routes/sets.js +0 -35
- package/dist/submodules/REST/routes/settings/index.js +0 -22
- package/dist/submodules/REST/routes/settings/maintenance.js +0 -87
- package/dist/submodules/REST/routes/settings/misc.js +0 -38
- package/dist/submodules/REST/routes/settings/sources.js +0 -61
- package/dist/submodules/REST/routes/tvshows.js +0 -140
- package/dist/submodules/REST/routes/users.js +0 -107
- package/dist/submodules/REST/routes/web.js +0 -43
- package/dist/submodules/axiosTimeout.js +0 -30
- package/dist/submodules/database.js +0 -180
- package/dist/submodules/ffmpeg.js +0 -23
- package/dist/submodules/ffprobe.js +0 -22
- package/dist/submodules/guessit.js +0 -48
- package/dist/submodules/handlers/DirectStreamer.js +0 -68
- package/dist/submodules/handlers/FFMPEGHandlers/DvdStreamer.js +0 -52
- package/dist/submodules/handlers/FFMPEGHandlers/RemuxStreamer.js +0 -33
- package/dist/submodules/handlers/FFMPEGHandlers/TranscodeStreamer.js +0 -33
- package/dist/submodules/handlers/FFMPEGStreamer.js +0 -56
- package/dist/submodules/handlers/FederationStreamer.js +0 -23
- package/dist/submodules/handlers/HLSSessionHandler.js +0 -141
- package/dist/submodules/logger/index.js +0 -43
- package/dist/submodules/promiseTimeout.js +0 -28
- package/dist/submodules/zeroconf.js +0 -19
- package/dist/transcoders/dvd.js +0 -26
- 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;
|
package/dist/transcoders/dvd.js
DELETED
|
@@ -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;
|