oblecto 0.2.9 → 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 +67 -39
- package/res/AGENTS.md +8 -0
- package/res/config.json +29 -7
- package/Oblecto-Web/dist/web/static/css/app.ef5965dbd50e69a7544e200a3f21fbaf.css +0 -1
- package/Oblecto-Web/dist/web/static/css/app.ef5965dbd50e69a7544e200a3f21fbaf.css.map +0 -1
- package/Oblecto-Web/dist/web/static/js/app.1352bf3c311f0e7ab716.js +0 -7150
- package/Oblecto-Web/dist/web/static/js/app.1352bf3c311f0e7ab716.js.map +0 -1
- package/Oblecto-Web/dist/web/static/js/manifest.b8404c3e329d75bb51fd.js +0 -154
- package/Oblecto-Web/dist/web/static/js/manifest.b8404c3e329d75bb51fd.js.map +0 -1
- package/Oblecto-Web/dist/web/static/js/vendor.521641a02e42750ba5a7.js +0 -32455
- package/Oblecto-Web/dist/web/static/js/vendor.521641a02e42750ba5a7.js.map +0 -1
- package/dist/bin/oblecto.d.ts +0 -2
- package/dist/bin/scripts/adduser.d.ts +0 -2
- package/dist/bin/scripts/adduser.js +0 -50
- package/dist/bin/scripts/changepassword.d.ts +0 -2
- package/dist/bin/scripts/changepassword.js +0 -48
- package/dist/bin/scripts/deluser.d.ts +0 -2
- package/dist/bin/scripts/deluser.js +0 -34
- package/dist/bin/scripts/helpers/argumentError.d.ts +0 -2
- package/dist/bin/scripts/helpers/argumentError.js +0 -12
- package/dist/bin/scripts/helpers/generateAssetDirectories.d.ts +0 -1
- package/dist/bin/scripts/helpers/generateAssetDirectories.js +0 -37
- package/dist/bin/scripts/init/assets.d.ts +0 -2
- package/dist/bin/scripts/init/assets.js +0 -24
- package/dist/bin/scripts/init/database.d.ts +0 -2
- package/dist/bin/scripts/init/database.js +0 -21
- package/dist/bin/scripts/init/general.d.ts +0 -2
- package/dist/bin/scripts/init/general.js +0 -54
- package/dist/bin/scripts/init/index.d.ts +0 -2
- package/dist/bin/scripts/init/index.js +0 -26
- package/dist/bin/scripts/removepassword.d.ts +0 -2
- package/dist/bin/scripts/removepassword.js +0 -42
- package/dist/config.d.ts +0 -7
- package/dist/config.js +0 -45
- package/dist/core/graphical.d.ts +0 -17
- package/dist/core/graphical.js +0 -179
- package/dist/core/index.d.ts +0 -9
- package/dist/core/index.js +0 -24
- package/dist/index.d.ts +0 -1
- package/dist/lib/artwork/ArtworkScaler.d.ts +0 -5
- package/dist/lib/artwork/ArtworkScaler.js +0 -31
- package/dist/lib/artwork/ArtworkUtils.d.ts +0 -8
- package/dist/lib/artwork/ArtworkUtils.js +0 -35
- package/dist/lib/artwork/movies/AggregateMovieArtworkRetriever.d.ts +0 -8
- package/dist/lib/artwork/movies/AggregateMovieArtworkRetriever.js +0 -58
- package/dist/lib/artwork/movies/MovieArtworkCollector.d.ts +0 -35
- package/dist/lib/artwork/movies/MovieArtworkCollector.js +0 -93
- package/dist/lib/artwork/movies/MovieArtworkDownloader.d.ts +0 -8
- package/dist/lib/artwork/movies/MovieArtworkDownloader.js +0 -65
- package/dist/lib/artwork/movies/artworkRetrievers/FanarttvMovieArtworkRetriever.d.ts +0 -6
- package/dist/lib/artwork/movies/artworkRetrievers/FanarttvMovieArtworkRetriever.js +0 -57
- package/dist/lib/artwork/movies/artworkRetrievers/TmdbMovieArtworkRetriever.d.ts +0 -6
- package/dist/lib/artwork/movies/artworkRetrievers/TmdbMovieArtworkRetriever.js +0 -47
- package/dist/lib/artwork/series/AggregateSeriesArtworkRetriever.d.ts +0 -8
- package/dist/lib/artwork/series/AggregateSeriesArtworkRetriever.js +0 -58
- package/dist/lib/artwork/series/SeriesArtworkCollector.d.ts +0 -37
- package/dist/lib/artwork/series/SeriesArtworkCollector.js +0 -95
- package/dist/lib/artwork/series/SeriesArtworkDownloader.d.ts +0 -8
- package/dist/lib/artwork/series/SeriesArtworkDownloader.js +0 -62
- package/dist/lib/artwork/series/artworkRetrievers/FanarttvSeriesArtworkRetriever.d.ts +0 -6
- package/dist/lib/artwork/series/artworkRetrievers/FanarttvSeriesArtworkRetriever.js +0 -44
- package/dist/lib/artwork/series/artworkRetrievers/TmdbSeriesArtworkRetriever.d.ts +0 -16
- package/dist/lib/artwork/series/artworkRetrievers/TmdbSeriesArtworkRetriever.js +0 -64
- package/dist/lib/artwork/series/artworkRetrievers/TvdbSeriesArtworkRetriever.d.ts +0 -16
- package/dist/lib/artwork/series/artworkRetrievers/TvdbSeriesArtworkRetriever.js +0 -51
- package/dist/lib/cleaners/FileCleaner.d.ts +0 -6
- package/dist/lib/cleaners/FileCleaner.js +0 -68
- package/dist/lib/cleaners/MovieCleaner.d.ts +0 -8
- package/dist/lib/cleaners/MovieCleaner.js +0 -48
- package/dist/lib/cleaners/SeriesCleaner.d.ts +0 -10
- package/dist/lib/cleaners/SeriesCleaner.js +0 -88
- package/dist/lib/common/AggregateIdentifier.d.ts +0 -9
- package/dist/lib/common/AggregateIdentifier.js +0 -57
- package/dist/lib/common/AggregateUpdateRetriever.d.ts +0 -5
- package/dist/lib/common/AggregateUpdateRetriever.js +0 -46
- package/dist/lib/downloader/index.d.ts +0 -6
- package/dist/lib/downloader/index.js +0 -83
- package/dist/lib/errors/DebugExtendableError.d.ts +0 -5
- package/dist/lib/errors/DebugExtendableError.js +0 -20
- package/dist/lib/errors/ExtendableError.d.ts +0 -3
- package/dist/lib/errors/ExtendableError.js +0 -22
- package/dist/lib/errors/FileExistsError.d.ts +0 -4
- package/dist/lib/errors/FileExistsError.js +0 -14
- package/dist/lib/errors/IdentificationError.d.ts +0 -4
- package/dist/lib/errors/IdentificationError.js +0 -14
- package/dist/lib/errors/InfoExtendableError.d.ts +0 -5
- package/dist/lib/errors/InfoExtendableError.js +0 -20
- package/dist/lib/errors/VideoAnalysisError.d.ts +0 -4
- package/dist/lib/errors/VideoAnalysisError.js +0 -14
- package/dist/lib/errors/VideoIdentificationError.d.ts +0 -4
- package/dist/lib/errors/VideoIdentificationError.js +0 -9
- package/dist/lib/errors/WarnExtendableError.d.ts +0 -5
- package/dist/lib/errors/WarnExtendableError.js +0 -20
- package/dist/lib/federation/client/FederationClient.d.ts +0 -31
- package/dist/lib/federation/client/FederationClient.js +0 -127
- package/dist/lib/federation/client/FederationClientController.d.ts +0 -9
- package/dist/lib/federation/client/FederationClientController.js +0 -45
- package/dist/lib/federation/client/FederationDataClient.d.ts +0 -11
- package/dist/lib/federation/client/FederationDataClient.js +0 -56
- package/dist/lib/federation/client/FederationMediaClient.d.ts +0 -12
- package/dist/lib/federation/client/FederationMediaClient.js +0 -70
- package/dist/lib/federation/server/FederationController.d.ts +0 -10
- package/dist/lib/federation/server/FederationController.js +0 -32
- package/dist/lib/federation/server/FederationDataServer.d.ts +0 -4
- package/dist/lib/federation/server/FederationDataServer.js +0 -22
- package/dist/lib/federation/server/FederationDataServerConnection.d.ts +0 -8
- package/dist/lib/federation/server/FederationDataServerConnection.js +0 -96
- package/dist/lib/federation/server/FederationMediaServer.d.ts +0 -4
- package/dist/lib/federation/server/FederationMediaServer.js +0 -22
- package/dist/lib/federation/server/FederationMediaServerConnection.d.ts +0 -11
- package/dist/lib/federation/server/FederationMediaServerConnection.js +0 -83
- package/dist/lib/federation/server/FederationServer.d.ts +0 -11
- package/dist/lib/federation/server/FederationServer.js +0 -40
- package/dist/lib/federation/server/FederationServerConnection.d.ts +0 -18
- package/dist/lib/federation/server/FederationServerConnection.js +0 -97
- package/dist/lib/federationindexer/FederationEpisodeIndexer.d.ts +0 -5
- package/dist/lib/federationindexer/FederationEpisodeIndexer.js +0 -65
- package/dist/lib/federationindexer/FederationMovieIndexer.d.ts +0 -5
- package/dist/lib/federationindexer/FederationMovieIndexer.js +0 -48
- package/dist/lib/federationv2/federationController/index.js +0 -13
- package/dist/lib/indexers/MediaIdentifier.d.ts +0 -5
- package/dist/lib/indexers/MediaIdentifier.js +0 -15
- package/dist/lib/indexers/files/FileIndexer.d.ts +0 -10
- package/dist/lib/indexers/files/FileIndexer.js +0 -103
- package/dist/lib/indexers/movies/MovieCollector.d.ts +0 -25
- package/dist/lib/indexers/movies/MovieCollector.js +0 -65
- package/dist/lib/indexers/movies/MovieIdentifier.d.ts +0 -10
- package/dist/lib/indexers/movies/MovieIdentifier.js +0 -22
- package/dist/lib/indexers/movies/MovieIndexer.d.ts +0 -11
- package/dist/lib/indexers/movies/MovieIndexer.js +0 -64
- package/dist/lib/indexers/movies/identifiers/TmdbMovieidentifier.d.ts +0 -4
- package/dist/lib/indexers/movies/identifiers/TmdbMovieidentifier.js +0 -52
- package/dist/lib/indexers/series/EpisodeIdentifier.d.ts +0 -12
- package/dist/lib/indexers/series/EpisodeIdentifier.js +0 -25
- package/dist/lib/indexers/series/SeriesCollector.d.ts +0 -25
- package/dist/lib/indexers/series/SeriesCollector.js +0 -69
- package/dist/lib/indexers/series/SeriesIdentifer.d.ts +0 -11
- package/dist/lib/indexers/series/SeriesIdentifer.js +0 -24
- package/dist/lib/indexers/series/SeriesIndexer.d.ts +0 -11
- package/dist/lib/indexers/series/SeriesIndexer.js +0 -140
- package/dist/lib/indexers/series/identifiers/TmdbEpisodeIdentifier.d.ts +0 -4
- package/dist/lib/indexers/series/identifiers/TmdbEpisodeIdentifier.js +0 -48
- package/dist/lib/indexers/series/identifiers/TmdbSeriesIdentifier.d.ts +0 -6
- package/dist/lib/indexers/series/identifiers/TmdbSeriesIdentifier.js +0 -90
- package/dist/lib/indexers/series/identifiers/TvdbEpisodeIdentifier.d.ts +0 -7
- package/dist/lib/indexers/series/identifiers/TvdbEpisodeIdentifier.js +0 -87
- package/dist/lib/indexers/series/identifiers/TvdbSeriesIdentifier.d.ts +0 -10
- package/dist/lib/indexers/series/identifiers/TvdbSeriesIdentifier.js +0 -82
- package/dist/lib/oblecto/index.d.ts +0 -68
- package/dist/lib/oblecto/index.js +0 -125
- package/dist/lib/queue/index.d.ts +0 -32
- package/dist/lib/queue/index.js +0 -96
- package/dist/lib/realtime/RealtimeClient.d.ts +0 -27
- package/dist/lib/realtime/RealtimeClient.js +0 -137
- package/dist/lib/realtime/RealtimeController.d.ts +0 -12
- package/dist/lib/realtime/RealtimeController.js +0 -50
- package/dist/lib/redisQueue/index.js +0 -109
- package/dist/lib/sets/tv/MovieSetCollector.d.ts +0 -6
- package/dist/lib/sets/tv/MovieSetCollector.js +0 -49
- package/dist/lib/streamSessions/StreamSession.d.ts +0 -41
- package/dist/lib/streamSessions/StreamSession.js +0 -146
- package/dist/lib/streamSessions/StreamSessionController.d.ts +0 -19
- package/dist/lib/streamSessions/StreamSessionController.js +0 -78
- package/dist/lib/streamSessions/StreamSessionTypes/DirectHttpStreamSession.d.ts +0 -5
- package/dist/lib/streamSessions/StreamSessionTypes/DirectHttpStreamSession.js +0 -116
- package/dist/lib/streamSessions/StreamSessionTypes/DirectStreamSession.d.ts +0 -5
- package/dist/lib/streamSessions/StreamSessionTypes/DirectStreamSession.js +0 -41
- package/dist/lib/streamSessions/StreamSessionTypes/HLSStreamer.d.ts +0 -15
- package/dist/lib/streamSessions/StreamSessionTypes/HLSStreamer.js +0 -148
- package/dist/lib/streamSessions/StreamSessionTypes/RecodeFederationStreamSession.d.ts +0 -9
- package/dist/lib/streamSessions/StreamSessionTypes/RecodeFederationStreamSession.js +0 -72
- package/dist/lib/streamSessions/StreamSessionTypes/RecodeStreamSession.d.ts +0 -6
- package/dist/lib/streamSessions/StreamSessionTypes/RecodeStreamSession.js +0 -96
- package/dist/lib/updaters/files/FileUpdateCollector.d.ts +0 -20
- package/dist/lib/updaters/files/FileUpdateCollector.js +0 -44
- package/dist/lib/updaters/files/FileUpdater.d.ts +0 -49
- package/dist/lib/updaters/files/FileUpdater.js +0 -194
- package/dist/lib/updaters/movies/MovieUpdateCollector.d.ts +0 -20
- package/dist/lib/updaters/movies/MovieUpdateCollector.js +0 -48
- package/dist/lib/updaters/movies/MovieUpdater.d.ts +0 -12
- package/dist/lib/updaters/movies/MovieUpdater.js +0 -49
- package/dist/lib/updaters/movies/informationRetrievers/TmdbMovieRetriever.d.ts +0 -20
- package/dist/lib/updaters/movies/informationRetrievers/TmdbMovieRetriever.js +0 -45
- package/dist/lib/updaters/series/SeriesUpdateCollector.d.ts +0 -37
- package/dist/lib/updaters/series/SeriesUpdateCollector.js +0 -79
- package/dist/lib/updaters/series/SeriesUpdater.d.ts +0 -22
- package/dist/lib/updaters/series/SeriesUpdater.js +0 -84
- package/dist/lib/updaters/series/informationRetrievers/TmdbEpisodeRetriever.d.ts +0 -11
- package/dist/lib/updaters/series/informationRetrievers/TmdbEpisodeRetriever.js +0 -70
- package/dist/lib/updaters/series/informationRetrievers/TmdbSeriesRetriever.d.ts +0 -21
- package/dist/lib/updaters/series/informationRetrievers/TmdbSeriesRetriever.js +0 -68
- package/dist/lib/updaters/series/informationRetrievers/TvdbEpisodeRetriever.d.ts +0 -5
- package/dist/lib/updaters/series/informationRetrievers/TvdbEpisodeRetriever.js +0 -38
- package/dist/lib/updaters/series/informationRetrievers/TvdbSeriesRetriever.d.ts +0 -21
- package/dist/lib/updaters/series/informationRetrievers/TvdbSeriesRetriever.js +0 -50
- package/dist/models/episode.d.ts +0 -76
- package/dist/models/episode.js +0 -62
- package/dist/models/episodeFiles.d.ts +0 -5
- package/dist/models/episodeFiles.js +0 -14
- package/dist/models/file.d.ts +0 -26
- package/dist/models/file.js +0 -32
- package/dist/models/movie.d.ts +0 -30
- package/dist/models/movie.js +0 -36
- package/dist/models/movieFiles.d.ts +0 -5
- package/dist/models/movieFiles.js +0 -14
- package/dist/models/movieSet.d.ts +0 -20
- package/dist/models/movieSet.js +0 -26
- package/dist/models/series.d.ts +0 -59
- package/dist/models/series.js +0 -50
- package/dist/models/seriesSet.d.ts +0 -9
- package/dist/models/seriesSet.js +0 -17
- package/dist/models/stream.d.ts +0 -73
- package/dist/models/stream.js +0 -81
- package/dist/models/trackEpisode.d.ts +0 -9
- package/dist/models/trackEpisode.js +0 -17
- package/dist/models/trackMovie.d.ts +0 -9
- package/dist/models/trackMovie.js +0 -17
- package/dist/models/user.d.ts +0 -19
- package/dist/models/user.js +0 -26
- package/dist/submodules/REST/index.d.ts +0 -9
- package/dist/submodules/REST/index.js +0 -59
- package/dist/submodules/REST/middleware/auth.d.ts +0 -5
- package/dist/submodules/REST/middleware/auth.js +0 -28
- package/dist/submodules/REST/routes/auth.d.ts +0 -2
- package/dist/submodules/REST/routes/auth.js +0 -48
- package/dist/submodules/REST/routes/clients.d.ts +0 -2
- package/dist/submodules/REST/routes/clients.js +0 -54
- package/dist/submodules/REST/routes/episodes.d.ts +0 -2
- package/dist/submodules/REST/routes/episodes.js +0 -275
- package/dist/submodules/REST/routes/files.d.ts +0 -2
- package/dist/submodules/REST/routes/files.js +0 -53
- package/dist/submodules/REST/routes/index.d.ts +0 -2
- package/dist/submodules/REST/routes/index.js +0 -49
- package/dist/submodules/REST/routes/movies.d.ts +0 -2
- package/dist/submodules/REST/routes/movies.js +0 -303
- package/dist/submodules/REST/routes/sets.d.ts +0 -2
- package/dist/submodules/REST/routes/sets.js +0 -35
- package/dist/submodules/REST/routes/settings/index.d.ts +0 -2
- package/dist/submodules/REST/routes/settings/index.js +0 -22
- package/dist/submodules/REST/routes/settings/maintenance.d.ts +0 -2
- package/dist/submodules/REST/routes/settings/maintenance.js +0 -87
- package/dist/submodules/REST/routes/settings/misc.d.ts +0 -2
- package/dist/submodules/REST/routes/settings/misc.js +0 -38
- package/dist/submodules/REST/routes/settings/sources.d.ts +0 -2
- package/dist/submodules/REST/routes/settings/sources.js +0 -61
- package/dist/submodules/REST/routes/streaming.js +0 -91
- package/dist/submodules/REST/routes/tvshows.d.ts +0 -2
- package/dist/submodules/REST/routes/tvshows.js +0 -137
- package/dist/submodules/REST/routes/users.d.ts +0 -2
- package/dist/submodules/REST/routes/users.js +0 -107
- package/dist/submodules/REST/routes/web.d.ts +0 -2
- package/dist/submodules/REST/routes/web.js +0 -43
- package/dist/submodules/axiosTimeout.d.ts +0 -1
- package/dist/submodules/axiosTimeout.js +0 -31
- package/dist/submodules/database.d.ts +0 -1
- package/dist/submodules/database.js +0 -180
- package/dist/submodules/ffmpeg.d.ts +0 -1
- package/dist/submodules/ffmpeg.js +0 -23
- package/dist/submodules/ffprobe.d.ts +0 -1
- package/dist/submodules/ffprobe.js +0 -22
- package/dist/submodules/guessit.d.ts +0 -5
- package/dist/submodules/guessit.js +0 -48
- package/dist/submodules/logger/index.d.ts +0 -7
- package/dist/submodules/logger/index.js +0 -43
- package/dist/submodules/promiseTimeout.d.ts +0 -1
- package/dist/submodules/promiseTimeout.js +0 -28
- package/dist/submodules/zeroconf.js +0 -19
|
@@ -1,96 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.default = void 0;
|
|
7
|
-
|
|
8
|
-
var _StreamSession = _interopRequireDefault(require("../StreamSession"));
|
|
9
|
-
|
|
10
|
-
var _ffmpeg = _interopRequireDefault(require("../../../submodules/ffmpeg"));
|
|
11
|
-
|
|
12
|
-
var _logger = _interopRequireDefault(require("../../../submodules/logger"));
|
|
13
|
-
|
|
14
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
15
|
-
|
|
16
|
-
class RecodeStreamSession extends _StreamSession.default {
|
|
17
|
-
constructor(file, options, oblecto) {
|
|
18
|
-
super(file, options, oblecto); // LanguageCode is the ISO 639-2 code for the desired language
|
|
19
|
-
|
|
20
|
-
this.targetLanguageCode = oblecto.config.streaming.defaultTargetLanguageCode;
|
|
21
|
-
|
|
22
|
-
if (this.videoCodec === this.file.videoCodec || this.file.videoCodec in this.targetVideoCodecs) {
|
|
23
|
-
this.videoCodec = 'copy';
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
if (this.audioCodec === this.file.audioCodec || this.file.audioCodec in this.targetAudioCodecs) {
|
|
27
|
-
this.audioCodec = 'copy';
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
async addDestination(destination) {
|
|
32
|
-
await super.addDestination(destination);
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
async startStream() {
|
|
36
|
-
var _audioStreams$, _videoStreams$;
|
|
37
|
-
|
|
38
|
-
await super.startStream();
|
|
39
|
-
if (this.started) return;
|
|
40
|
-
this.started = true;
|
|
41
|
-
let inputOptions = ['-noaccurate_seek'];
|
|
42
|
-
let outputOptions = ['-movflags empty_moov', '-copyts', '-preset ultrafast', '-tune zerolatency'];
|
|
43
|
-
|
|
44
|
-
if (this.oblecto.config.transcoding.hardwareAcceleration) {
|
|
45
|
-
inputOptions.push('-hwaccel ' + this.oblecto.config.transcoding.hardwareAccelerator); // The Nvidia NVENC encoder doesn't support 10 bit encoding, so we need to force 8 bit
|
|
46
|
-
// if the cuda accelerator has been selected
|
|
47
|
-
// TODO: Fix washed out colors for some 10 bit video streams when using the NVENC encoder
|
|
48
|
-
// Depending on the input color range, this may result in washed out colors since the
|
|
49
|
-
// color range is kept but considered to be a full range color space even if the input
|
|
50
|
-
// range is limited.
|
|
51
|
-
|
|
52
|
-
if (this.oblecto.config.transcoding.hardwareAccelerator === 'cuda') {
|
|
53
|
-
outputOptions.push('-pix_fmt yuv420p');
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
let streams = await this.file.getStreams();
|
|
58
|
-
let audioStreams = [];
|
|
59
|
-
let videoStreams = [];
|
|
60
|
-
|
|
61
|
-
for (let stream of streams) {
|
|
62
|
-
if (stream.codec_type === 'video') videoStreams.push(stream);
|
|
63
|
-
if (stream.codec_type === 'audio') audioStreams.push(stream);
|
|
64
|
-
} // Define default streams. We don't want to end up with a video without any audio or video streams
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
let selectedAudioStream = audioStreams === null || audioStreams === void 0 ? void 0 : (_audioStreams$ = audioStreams[0]) === null || _audioStreams$ === void 0 ? void 0 : _audioStreams$.index;
|
|
68
|
-
let selectedVideoStream = videoStreams === null || videoStreams === void 0 ? void 0 : (_videoStreams$ = videoStreams[0]) === null || _videoStreams$ === void 0 ? void 0 : _videoStreams$.index; // Find a video stream with the desired language code
|
|
69
|
-
// TODO: Some languages may be identified by multiple language codes
|
|
70
|
-
// EG: French sometimes uses both "Fra" and "Fre"
|
|
71
|
-
|
|
72
|
-
for (let stream of audioStreams) {
|
|
73
|
-
if (stream.tags_language === this.targetLanguageCode && stream.index !== undefined) {
|
|
74
|
-
selectedAudioStream = stream.index;
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
if (!(selectedVideoStream === undefined || selectedAudioStream === undefined)) {
|
|
79
|
-
outputOptions.push(`-map 0:${selectedAudioStream}`);
|
|
80
|
-
outputOptions.push(`-map 0:${selectedVideoStream}`);
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
this.process = (0, _ffmpeg.default)(this.file.path).format(this.format).videoCodec(this.getFfmpegVideoCodec()).audioCodec(this.audioCodec).seekInput(this.offset).inputOptions(inputOptions).outputOptions(outputOptions).on('start', cmd => {
|
|
84
|
-
_logger.default.log('INFO', this.sessionId, cmd);
|
|
85
|
-
});
|
|
86
|
-
this.process.on('error', err => {
|
|
87
|
-
if (err.message !== 'ffmpeg was killed with signal SIGKILL') _logger.default.log('ERROR', this.sessionId, err);
|
|
88
|
-
});
|
|
89
|
-
this.process.pipe(this.outputStream, {
|
|
90
|
-
end: true
|
|
91
|
-
});
|
|
92
|
-
}
|
|
93
|
-
|
|
94
|
-
}
|
|
95
|
-
|
|
96
|
-
exports.default = RecodeStreamSession;
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
export default class FileUpdateCollector {
|
|
2
|
-
/**
|
|
3
|
-
*
|
|
4
|
-
* @param {Oblecto} oblecto
|
|
5
|
-
*/
|
|
6
|
-
constructor(oblecto: any);
|
|
7
|
-
oblecto: any;
|
|
8
|
-
/**
|
|
9
|
-
*
|
|
10
|
-
* @param {File} file - File entity to update
|
|
11
|
-
* @returns {Promise<void>}
|
|
12
|
-
*/
|
|
13
|
-
collectFile(file: File): Promise<void>;
|
|
14
|
-
/**
|
|
15
|
-
*
|
|
16
|
-
* @returns {Promise<void>}
|
|
17
|
-
*/
|
|
18
|
-
collectAllFiles(): Promise<void>;
|
|
19
|
-
}
|
|
20
|
-
import { File } from "../../../models/file";
|
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.default = void 0;
|
|
7
|
-
|
|
8
|
-
var _file = require("../../../models/file");
|
|
9
|
-
|
|
10
|
-
class FileUpdateCollector {
|
|
11
|
-
/**
|
|
12
|
-
*
|
|
13
|
-
* @param {Oblecto} oblecto
|
|
14
|
-
*/
|
|
15
|
-
constructor(oblecto) {
|
|
16
|
-
this.oblecto = oblecto;
|
|
17
|
-
}
|
|
18
|
-
/**
|
|
19
|
-
*
|
|
20
|
-
* @param {File} file - File entity to update
|
|
21
|
-
* @returns {Promise<void>}
|
|
22
|
-
*/
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
async collectFile(file) {
|
|
26
|
-
this.oblecto.queue.queueJob('updateFile', file);
|
|
27
|
-
}
|
|
28
|
-
/**
|
|
29
|
-
*
|
|
30
|
-
* @returns {Promise<void>}
|
|
31
|
-
*/
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
async collectAllFiles() {
|
|
35
|
-
let files = await _file.File.findAll();
|
|
36
|
-
|
|
37
|
-
for (let file of files) {
|
|
38
|
-
this.collectFile(file);
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
exports.default = FileUpdateCollector;
|
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
export default class FileUpdater {
|
|
2
|
-
static getPrimaryVideoStream(metadata: any): Promise<{
|
|
3
|
-
duration: number;
|
|
4
|
-
}>;
|
|
5
|
-
static getPrimaryAudioStream(metadata: any): Promise<{
|
|
6
|
-
duration: number;
|
|
7
|
-
}>;
|
|
8
|
-
/**
|
|
9
|
-
* @param {Oblecto} oblecto
|
|
10
|
-
*/
|
|
11
|
-
constructor(oblecto: any);
|
|
12
|
-
oblecto: any;
|
|
13
|
-
/**
|
|
14
|
-
*
|
|
15
|
-
* @param {File} file
|
|
16
|
-
* @returns {Promise<void>}
|
|
17
|
-
*/
|
|
18
|
-
updateFile(file: any): Promise<void>;
|
|
19
|
-
/**
|
|
20
|
-
*
|
|
21
|
-
* @param {File} file
|
|
22
|
-
* @returns {Promise<string>}
|
|
23
|
-
*/
|
|
24
|
-
getHashFromFile(file: any): Promise<string>;
|
|
25
|
-
/**
|
|
26
|
-
*
|
|
27
|
-
* @param {File} file
|
|
28
|
-
* @returns {Promise<void>}
|
|
29
|
-
*/
|
|
30
|
-
updateFileHash(file: any): Promise<void>;
|
|
31
|
-
/**
|
|
32
|
-
*
|
|
33
|
-
* @param {File} file
|
|
34
|
-
* @returns {Promise<void>}
|
|
35
|
-
*/
|
|
36
|
-
updateFileSize(file: any): Promise<void>;
|
|
37
|
-
/**
|
|
38
|
-
*
|
|
39
|
-
* @param {File} file
|
|
40
|
-
* @returns {Promise<void>}
|
|
41
|
-
*/
|
|
42
|
-
updateFileExtension(file: any): Promise<void>;
|
|
43
|
-
/**
|
|
44
|
-
*
|
|
45
|
-
* @param {File} file
|
|
46
|
-
* @returns {Promise<void>}
|
|
47
|
-
*/
|
|
48
|
-
updateFileFFProbe(file: any): Promise<void>;
|
|
49
|
-
}
|
|
@@ -1,194 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.default = void 0;
|
|
7
|
-
|
|
8
|
-
var _crypto = _interopRequireDefault(require("crypto"));
|
|
9
|
-
|
|
10
|
-
var _fs = require("fs");
|
|
11
|
-
|
|
12
|
-
var _ffprobe = _interopRequireDefault(require("../../../submodules/ffprobe"));
|
|
13
|
-
|
|
14
|
-
var _VideoAnalysisError = _interopRequireDefault(require("../../errors/VideoAnalysisError"));
|
|
15
|
-
|
|
16
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
17
|
-
|
|
18
|
-
class FileUpdater {
|
|
19
|
-
/**
|
|
20
|
-
* @param {Oblecto} oblecto
|
|
21
|
-
*/
|
|
22
|
-
constructor(oblecto) {
|
|
23
|
-
this.oblecto = oblecto;
|
|
24
|
-
this.oblecto.queue.registerJob('updateFile', async file => {
|
|
25
|
-
await this.updateFile(file);
|
|
26
|
-
});
|
|
27
|
-
this.oblecto.queue.registerJob('updateFileHash', async file => {
|
|
28
|
-
await this.updateFileHash(file);
|
|
29
|
-
});
|
|
30
|
-
this.oblecto.queue.registerJob('updateFileSize', async file => {
|
|
31
|
-
await this.updateFileSize(file);
|
|
32
|
-
});
|
|
33
|
-
this.oblecto.queue.registerJob('updateFileExtension', async file => {
|
|
34
|
-
await this.updateFileExtension(file);
|
|
35
|
-
});
|
|
36
|
-
this.oblecto.queue.registerJob('updateFileFFProbe', async file => {
|
|
37
|
-
await this.updateFileFFProbe(file);
|
|
38
|
-
});
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
static async getPrimaryVideoStream(metadata) {
|
|
42
|
-
let streams = metadata.streams;
|
|
43
|
-
let primaryStream = {
|
|
44
|
-
duration: 0
|
|
45
|
-
};
|
|
46
|
-
|
|
47
|
-
for (const stream of streams) {
|
|
48
|
-
if (stream.duration || 1 >= primaryStream.duration) {
|
|
49
|
-
if (stream['codec_type'] !== 'video') continue;
|
|
50
|
-
primaryStream = stream;
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
return primaryStream;
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
static async getPrimaryAudioStream(metadata) {
|
|
58
|
-
let streams = metadata.streams;
|
|
59
|
-
let primaryStream = {
|
|
60
|
-
duration: 0
|
|
61
|
-
};
|
|
62
|
-
|
|
63
|
-
for (const stream of streams) {
|
|
64
|
-
if (stream.duration || 1 >= primaryStream.duration) {
|
|
65
|
-
if (stream['codec_type'] !== 'audio') continue;
|
|
66
|
-
primaryStream = stream;
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
return primaryStream;
|
|
71
|
-
}
|
|
72
|
-
/**
|
|
73
|
-
*
|
|
74
|
-
* @param {File} file
|
|
75
|
-
* @returns {Promise<void>}
|
|
76
|
-
*/
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
async updateFile(file) {
|
|
80
|
-
if (this.oblecto.config.files.doHash && !file.hash) {
|
|
81
|
-
this.oblecto.queue.lowPriorityJob('updateFileHash', file);
|
|
82
|
-
}
|
|
83
|
-
|
|
84
|
-
if (!file.size || file.size === 0) {
|
|
85
|
-
this.oblecto.queue.queueJob('updateFileSize', file);
|
|
86
|
-
}
|
|
87
|
-
|
|
88
|
-
if (file.extension.includes('.')) {
|
|
89
|
-
this.oblecto.queue.queueJob('updateFileExtension', file);
|
|
90
|
-
}
|
|
91
|
-
|
|
92
|
-
if (!file.duration || file.duration === 0) {
|
|
93
|
-
this.oblecto.queue.queueJob('updateFileFFProbe', file);
|
|
94
|
-
this.oblecto.queue.queueJob('indexFileStreams', file);
|
|
95
|
-
}
|
|
96
|
-
}
|
|
97
|
-
/**
|
|
98
|
-
*
|
|
99
|
-
* @param {File} file
|
|
100
|
-
* @returns {Promise<string>}
|
|
101
|
-
*/
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
getHashFromFile(file) {
|
|
105
|
-
return new Promise((resolve, reject) => {
|
|
106
|
-
let fd = (0, _fs.createReadStream)(file.path);
|
|
107
|
-
|
|
108
|
-
let hash = _crypto.default.createHash('sha1');
|
|
109
|
-
|
|
110
|
-
hash.setEncoding('hex');
|
|
111
|
-
fd.on('end', function () {
|
|
112
|
-
hash.end();
|
|
113
|
-
resolve(hash.read());
|
|
114
|
-
});
|
|
115
|
-
fd.on('error', () => {
|
|
116
|
-
reject(new _VideoAnalysisError.default(`Failed to calculate hash for ${file.path}`));
|
|
117
|
-
});
|
|
118
|
-
fd.pipe(hash);
|
|
119
|
-
});
|
|
120
|
-
}
|
|
121
|
-
/**
|
|
122
|
-
*
|
|
123
|
-
* @param {File} file
|
|
124
|
-
* @returns {Promise<void>}
|
|
125
|
-
*/
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
async updateFileHash(file) {
|
|
129
|
-
let hash = await this.getHashFromFile(file);
|
|
130
|
-
await file.update({
|
|
131
|
-
hash
|
|
132
|
-
});
|
|
133
|
-
}
|
|
134
|
-
/**
|
|
135
|
-
*
|
|
136
|
-
* @param {File} file
|
|
137
|
-
* @returns {Promise<void>}
|
|
138
|
-
*/
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
async updateFileSize(file) {
|
|
142
|
-
let size = (await _fs.promises.stat(file.path)).size;
|
|
143
|
-
await file.update({
|
|
144
|
-
size
|
|
145
|
-
});
|
|
146
|
-
}
|
|
147
|
-
/**
|
|
148
|
-
*
|
|
149
|
-
* @param {File} file
|
|
150
|
-
* @returns {Promise<void>}
|
|
151
|
-
*/
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
async updateFileExtension(file) {
|
|
155
|
-
let extension = file.extension.replace('.', '');
|
|
156
|
-
await file.update({
|
|
157
|
-
extension
|
|
158
|
-
});
|
|
159
|
-
}
|
|
160
|
-
/**
|
|
161
|
-
*
|
|
162
|
-
* @param {File} file
|
|
163
|
-
* @returns {Promise<void>}
|
|
164
|
-
*/
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
async updateFileFFProbe(file) {
|
|
168
|
-
let metadata;
|
|
169
|
-
|
|
170
|
-
try {
|
|
171
|
-
metadata = await (0, _ffprobe.default)(file.path);
|
|
172
|
-
} catch (e) {
|
|
173
|
-
throw new _VideoAnalysisError.default(`Failed to ffprobe ${file.path}`);
|
|
174
|
-
}
|
|
175
|
-
|
|
176
|
-
let primaryVideoStream = await FileUpdater.getPrimaryVideoStream(metadata);
|
|
177
|
-
let primaryAudioStream = await FileUpdater.getPrimaryAudioStream(metadata);
|
|
178
|
-
let duration = metadata.format.duration;
|
|
179
|
-
|
|
180
|
-
if (isNaN(duration)) {
|
|
181
|
-
throw new _VideoAnalysisError.default(`Could not extract duration from ${file.path}`);
|
|
182
|
-
}
|
|
183
|
-
|
|
184
|
-
await file.update({
|
|
185
|
-
duration,
|
|
186
|
-
container: metadata.format['format_name'],
|
|
187
|
-
videoCodec: primaryVideoStream['codec_name'],
|
|
188
|
-
audioCodec: primaryAudioStream['codec_name']
|
|
189
|
-
});
|
|
190
|
-
}
|
|
191
|
-
|
|
192
|
-
}
|
|
193
|
-
|
|
194
|
-
exports.default = FileUpdater;
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
export default class MovieUpdateCollector {
|
|
2
|
-
/**
|
|
3
|
-
*
|
|
4
|
-
* @param {Oblecto} oblecto
|
|
5
|
-
*/
|
|
6
|
-
constructor(oblecto: any);
|
|
7
|
-
oblecto: any;
|
|
8
|
-
/**
|
|
9
|
-
*
|
|
10
|
-
* @param {Movie} movie - Which movie entity to update;
|
|
11
|
-
* @returns {Promise<void>}
|
|
12
|
-
*/
|
|
13
|
-
collectMovie(movie: Movie): Promise<void>;
|
|
14
|
-
/**
|
|
15
|
-
*
|
|
16
|
-
* @returns {Promise<void>}
|
|
17
|
-
*/
|
|
18
|
-
collectAllMovies(): Promise<void>;
|
|
19
|
-
}
|
|
20
|
-
import { Movie } from "../../../models/movie";
|
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.default = void 0;
|
|
7
|
-
|
|
8
|
-
var _database = _interopRequireDefault(require("../../../submodules/database"));
|
|
9
|
-
|
|
10
|
-
var _movie = require("../../../models/movie");
|
|
11
|
-
|
|
12
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
13
|
-
|
|
14
|
-
class MovieUpdateCollector {
|
|
15
|
-
/**
|
|
16
|
-
*
|
|
17
|
-
* @param {Oblecto} oblecto
|
|
18
|
-
*/
|
|
19
|
-
constructor(oblecto) {
|
|
20
|
-
this.oblecto = oblecto;
|
|
21
|
-
}
|
|
22
|
-
/**
|
|
23
|
-
*
|
|
24
|
-
* @param {Movie} movie - Which movie entity to update;
|
|
25
|
-
* @returns {Promise<void>}
|
|
26
|
-
*/
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
async collectMovie(movie) {
|
|
30
|
-
this.oblecto.queue.queueJob('updateMovie', movie);
|
|
31
|
-
}
|
|
32
|
-
/**
|
|
33
|
-
*
|
|
34
|
-
* @returns {Promise<void>}
|
|
35
|
-
*/
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
async collectAllMovies() {
|
|
39
|
-
let movies = await _movie.Movie.findAll();
|
|
40
|
-
|
|
41
|
-
for (let movie of movies) {
|
|
42
|
-
this.collectMovie(movie);
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
exports.default = MovieUpdateCollector;
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
export default class MovieUpdater {
|
|
2
|
-
constructor(oblecto: any);
|
|
3
|
-
oblecto: any;
|
|
4
|
-
aggregateMovieUpdateRetriever: AggregateUpdateRetriever;
|
|
5
|
-
/**
|
|
6
|
-
*
|
|
7
|
-
* @param {Movie} movie
|
|
8
|
-
* @returns {Promise<void>}
|
|
9
|
-
*/
|
|
10
|
-
updateMovie(movie: any): Promise<void>;
|
|
11
|
-
}
|
|
12
|
-
import AggregateUpdateRetriever from "../../common/AggregateUpdateRetriever";
|
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.default = void 0;
|
|
7
|
-
|
|
8
|
-
var _AggregateUpdateRetriever = _interopRequireDefault(require("../../common/AggregateUpdateRetriever"));
|
|
9
|
-
|
|
10
|
-
var _TmdbMovieRetriever = _interopRequireDefault(require("./informationRetrievers/TmdbMovieRetriever"));
|
|
11
|
-
|
|
12
|
-
var _logger = _interopRequireDefault(require("../../../submodules/logger"));
|
|
13
|
-
|
|
14
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
15
|
-
|
|
16
|
-
class MovieUpdater {
|
|
17
|
-
constructor(oblecto) {
|
|
18
|
-
this.oblecto = oblecto;
|
|
19
|
-
this.aggregateMovieUpdateRetriever = new _AggregateUpdateRetriever.default();
|
|
20
|
-
const movieUpdateRetrievers = {
|
|
21
|
-
'tmdb': _TmdbMovieRetriever.default
|
|
22
|
-
};
|
|
23
|
-
|
|
24
|
-
for (let updater of this.oblecto.config.movies.movieUpdaters) {
|
|
25
|
-
_logger.default.log('DEBUG', `Loading ${updater} movie updater`);
|
|
26
|
-
|
|
27
|
-
this.aggregateMovieUpdateRetriever.loadRetriever(new movieUpdateRetrievers[updater](this.oblecto));
|
|
28
|
-
} // Register task availability to Oblecto queue
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
this.oblecto.queue.registerJob('updateMovie', async job => {
|
|
32
|
-
await this.updateMovie(job);
|
|
33
|
-
});
|
|
34
|
-
}
|
|
35
|
-
/**
|
|
36
|
-
*
|
|
37
|
-
* @param {Movie} movie
|
|
38
|
-
* @returns {Promise<void>}
|
|
39
|
-
*/
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
async updateMovie(movie) {
|
|
43
|
-
let data = await this.aggregateMovieUpdateRetriever.retrieveInformation(movie);
|
|
44
|
-
await movie.update(data);
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
exports.default = MovieUpdater;
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
export default class TmdbMovieRetriever {
|
|
2
|
-
/**
|
|
3
|
-
* @param {Oblecto} oblecto
|
|
4
|
-
*/
|
|
5
|
-
constructor(oblecto: any);
|
|
6
|
-
oblecto: any;
|
|
7
|
-
retrieveInformation(movie: any): Promise<{
|
|
8
|
-
imdbid: any;
|
|
9
|
-
movieName: any;
|
|
10
|
-
originalName: any;
|
|
11
|
-
tagline: any;
|
|
12
|
-
originalLanguage: any;
|
|
13
|
-
budget: any;
|
|
14
|
-
revenue: any;
|
|
15
|
-
runtime: any;
|
|
16
|
-
overview: any;
|
|
17
|
-
popularity: any;
|
|
18
|
-
releaseDate: any;
|
|
19
|
-
}>;
|
|
20
|
-
}
|
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.default = void 0;
|
|
7
|
-
|
|
8
|
-
var _promiseTimeout = _interopRequireDefault(require("../../../../submodules/promiseTimeout"));
|
|
9
|
-
|
|
10
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
11
|
-
|
|
12
|
-
class TmdbMovieRetriever {
|
|
13
|
-
/**
|
|
14
|
-
* @param {Oblecto} oblecto
|
|
15
|
-
*/
|
|
16
|
-
constructor(oblecto) {
|
|
17
|
-
this.oblecto = oblecto;
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
async retrieveInformation(movie) {
|
|
21
|
-
let movieInfo = await (0, _promiseTimeout.default)(this.oblecto.tmdb.movieInfo({
|
|
22
|
-
id: movie.tmdbid
|
|
23
|
-
}, {
|
|
24
|
-
timeout: 5000
|
|
25
|
-
}));
|
|
26
|
-
let data = {
|
|
27
|
-
imdbid: movieInfo.imdb_id,
|
|
28
|
-
movieName: movieInfo.title,
|
|
29
|
-
originalName: movieInfo.original_title,
|
|
30
|
-
tagline: movieInfo.tagline,
|
|
31
|
-
genres: JSON.stringify(movieInfo.genres.map(i => i.name)),
|
|
32
|
-
originalLanguage: movieInfo.original_language,
|
|
33
|
-
budget: movieInfo.budget,
|
|
34
|
-
revenue: movieInfo.revenue,
|
|
35
|
-
runtime: movieInfo.runtime,
|
|
36
|
-
overview: movieInfo.overview,
|
|
37
|
-
popularity: movieInfo.popularity,
|
|
38
|
-
releaseDate: movieInfo.release_date
|
|
39
|
-
};
|
|
40
|
-
return data;
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
exports.default = TmdbMovieRetriever;
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
export default class SeriesUpdateCollector {
|
|
2
|
-
/**
|
|
3
|
-
*
|
|
4
|
-
* @param {Oblecto} oblecto
|
|
5
|
-
*/
|
|
6
|
-
constructor(oblecto: any);
|
|
7
|
-
oblecto: any;
|
|
8
|
-
/**
|
|
9
|
-
*
|
|
10
|
-
* @param {Episode} episode - Episode for which to download the episode banner for
|
|
11
|
-
* @returns {Promise<void>}
|
|
12
|
-
*/
|
|
13
|
-
collectEpisode(episode: Episode): Promise<void>;
|
|
14
|
-
/**
|
|
15
|
-
*
|
|
16
|
-
* @param {Series} series - Series for which to download the series poster for
|
|
17
|
-
* @returns {Promise<void>}
|
|
18
|
-
*/
|
|
19
|
-
collectSeries(series: Series): Promise<void>;
|
|
20
|
-
/**
|
|
21
|
-
*
|
|
22
|
-
* @returns {Promise<void>}
|
|
23
|
-
*/
|
|
24
|
-
collectAllEpisodes(): Promise<void>;
|
|
25
|
-
/**
|
|
26
|
-
*
|
|
27
|
-
* @returns {Promise<void>}
|
|
28
|
-
*/
|
|
29
|
-
collectAllSeries(): Promise<void>;
|
|
30
|
-
/**
|
|
31
|
-
*
|
|
32
|
-
* @returns {Promise<void>}
|
|
33
|
-
*/
|
|
34
|
-
collectAll(): Promise<void>;
|
|
35
|
-
}
|
|
36
|
-
import { Episode } from "../../../models/episode";
|
|
37
|
-
import { Series } from "../../../models/series";
|