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,70 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.default = void 0;
|
|
7
|
-
|
|
8
|
-
var _FederationClient = _interopRequireDefault(require("./FederationClient"));
|
|
9
|
-
|
|
10
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
11
|
-
|
|
12
|
-
class FederationMediaClient extends _FederationClient.default {
|
|
13
|
-
constructor(oblecto, server) {
|
|
14
|
-
super(oblecto, server);
|
|
15
|
-
this.port = oblecto.config.federation.servers[server].mediaPort;
|
|
16
|
-
this.fileId = null;
|
|
17
|
-
this.streamDestination = null;
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
headerHandler(data) {
|
|
21
|
-
super.headerHandler(data);
|
|
22
|
-
let split = data.split(':');
|
|
23
|
-
|
|
24
|
-
switch (split[0]) {
|
|
25
|
-
case 'READY':
|
|
26
|
-
this.readyHandler(split[1]);
|
|
27
|
-
break;
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
async startStreamFile(fileId) {
|
|
32
|
-
this.fileId = fileId;
|
|
33
|
-
this.socket.write(`FILEID:${fileId}\n`);
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
async setStreamDestination(dest) {
|
|
37
|
-
this.streamDestination = dest;
|
|
38
|
-
dest.on('close', () => {
|
|
39
|
-
this.socket.destroy();
|
|
40
|
-
});
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
async readyHandler(data) {
|
|
44
|
-
if (data !== this.fileId) {
|
|
45
|
-
// The server didn't respect the file id
|
|
46
|
-
// This really shouldn't happen so we destroy the client
|
|
47
|
-
this.socket.destroy();
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
this.socket.pipe(this.streamDestination);
|
|
51
|
-
this.startStream();
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
async startStream() {
|
|
55
|
-
if (!this.streamDestination) throw new Error('No destination');
|
|
56
|
-
this.socket.write('START:START\n');
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
async setStreamOffset(offset) {
|
|
60
|
-
this.socket.write(`OFFSET:${offset}\n`);
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
async closeConnection() {
|
|
64
|
-
this.socket.destroy();
|
|
65
|
-
delete this;
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
exports.default = FederationMediaClient;
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
export default class FederationController {
|
|
2
|
-
constructor(oblecto: any);
|
|
3
|
-
oblecto: any;
|
|
4
|
-
initiateFederation(): void;
|
|
5
|
-
federationMediaServer: FederationMediaServer | undefined;
|
|
6
|
-
federationDataServer: FederationDataServer | undefined;
|
|
7
|
-
close(): void;
|
|
8
|
-
}
|
|
9
|
-
import FederationMediaServer from "./FederationMediaServer";
|
|
10
|
-
import FederationDataServer from "./FederationDataServer";
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.default = void 0;
|
|
7
|
-
|
|
8
|
-
var _FederationMediaServer = _interopRequireDefault(require("./FederationMediaServer"));
|
|
9
|
-
|
|
10
|
-
var _FederationDataServer = _interopRequireDefault(require("./FederationDataServer"));
|
|
11
|
-
|
|
12
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
13
|
-
|
|
14
|
-
class FederationController {
|
|
15
|
-
constructor(oblecto) {
|
|
16
|
-
this.oblecto = oblecto;
|
|
17
|
-
this.initiateFederation();
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
initiateFederation() {
|
|
21
|
-
this.federationMediaServer = new _FederationMediaServer.default(this.oblecto, this.oblecto.config.federation.mediaPort);
|
|
22
|
-
this.federationDataServer = new _FederationDataServer.default(this.oblecto, this.oblecto.config.federation.dataPort);
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
close() {
|
|
26
|
-
this.federationDataServer.close();
|
|
27
|
-
this.federationMediaServer.close();
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
exports.default = FederationController;
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.default = void 0;
|
|
7
|
-
|
|
8
|
-
var _FederationServer = _interopRequireDefault(require("./FederationServer"));
|
|
9
|
-
|
|
10
|
-
var _FederationDataServerConnection = _interopRequireDefault(require("./FederationDataServerConnection"));
|
|
11
|
-
|
|
12
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
13
|
-
|
|
14
|
-
class FederationMediaServer extends _FederationServer.default {
|
|
15
|
-
secureConnectionHandler(socket) {
|
|
16
|
-
super.secureConnectionHandler(socket);
|
|
17
|
-
let connection = new _FederationDataServerConnection.default(this.oblecto, socket);
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
exports.default = FederationMediaServer;
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
export default class FederationDataServerConnection extends FederationServerConnection {
|
|
2
|
-
constructor(oblecto: any, socket: any);
|
|
3
|
-
fullSyncPermitted: boolean;
|
|
4
|
-
syncHandler(data: any): false | Promise<void> | undefined;
|
|
5
|
-
startFullSync(): Promise<void>;
|
|
6
|
-
syncFiles(): Promise<void>;
|
|
7
|
-
}
|
|
8
|
-
import FederationServerConnection from "./FederationServerConnection";
|
|
@@ -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 _FederationServerConnection = _interopRequireDefault(require("./FederationServerConnection"));
|
|
9
|
-
|
|
10
|
-
var _file = require("../../../models/file");
|
|
11
|
-
|
|
12
|
-
var _movie = require("../../../models/movie");
|
|
13
|
-
|
|
14
|
-
var _episode = require("../../../models/episode");
|
|
15
|
-
|
|
16
|
-
var _series = require("../../../models/series");
|
|
17
|
-
|
|
18
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
19
|
-
|
|
20
|
-
class FederationDataServerConnection extends _FederationServerConnection.default {
|
|
21
|
-
constructor(oblecto, socket) {
|
|
22
|
-
super(oblecto, socket);
|
|
23
|
-
this.fullSyncPermitted = true;
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
async headerHandler(data) {
|
|
27
|
-
super.headerHandler(data);
|
|
28
|
-
if (!this.authenticated) return;
|
|
29
|
-
let split = data.split(':');
|
|
30
|
-
|
|
31
|
-
switch (split[0]) {
|
|
32
|
-
case 'SYNC':
|
|
33
|
-
this.syncHandler(split[1]);
|
|
34
|
-
break;
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
syncHandler(data) {
|
|
39
|
-
if (data === 'FULL') {
|
|
40
|
-
if (!this.fullSyncPermitted) return false;
|
|
41
|
-
return this.startFullSync();
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
async startFullSync() {
|
|
46
|
-
await this.syncFiles();
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
async syncFiles() {
|
|
50
|
-
let results = await _file.File.findAll({
|
|
51
|
-
include: [_movie.Movie, {
|
|
52
|
-
model: _episode.Episode,
|
|
53
|
-
include: [_series.Series]
|
|
54
|
-
}]
|
|
55
|
-
});
|
|
56
|
-
|
|
57
|
-
for (let result of results) {
|
|
58
|
-
if (this.socket.destroyed) return;
|
|
59
|
-
let file = result.toJSON();
|
|
60
|
-
let fileInfo = {};
|
|
61
|
-
|
|
62
|
-
if (file.Episodes[0]) {
|
|
63
|
-
fileInfo.type = 'episode';
|
|
64
|
-
fileInfo.episode = file.Episodes[0].airedEpisodeNumber;
|
|
65
|
-
fileInfo.season = file.Episodes[0].airedSeason;
|
|
66
|
-
if (file.Episodes[0].tvdbid) fileInfo.tvdbid = file.Episodes[0].tvdbid;
|
|
67
|
-
if (file.Episodes[0].tmdbid) fileInfo.tmdbid = file.Episodes[0].tmdbid;
|
|
68
|
-
if (file.Episodes[0].Series.tvdbid) fileInfo.seriesTvdbid = file.Episodes[0].Series.tvdbid;
|
|
69
|
-
if (file.Episodes[0].Series.tmdbid) fileInfo.seriesTmdbid = file.Episodes[0].Series.tmdbid;
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
if (file.Movies[0]) {
|
|
73
|
-
fileInfo.type = 'movie';
|
|
74
|
-
fileInfo.tmdbid = file.Movies[0].tmdbid;
|
|
75
|
-
}
|
|
76
|
-
|
|
77
|
-
let syncInfo = {
|
|
78
|
-
id: file.id,
|
|
79
|
-
duration: file.duration,
|
|
80
|
-
fileInfo
|
|
81
|
-
};
|
|
82
|
-
this.write('FILE', Buffer.from(JSON.stringify(syncInfo)).toString('base64')); // TODO: Negotiate a syncing speed
|
|
83
|
-
|
|
84
|
-
await sleep(100);
|
|
85
|
-
}
|
|
86
|
-
}
|
|
87
|
-
|
|
88
|
-
}
|
|
89
|
-
|
|
90
|
-
exports.default = FederationDataServerConnection;
|
|
91
|
-
|
|
92
|
-
function sleep(ms) {
|
|
93
|
-
return new Promise(resolve => {
|
|
94
|
-
setTimeout(resolve, ms);
|
|
95
|
-
});
|
|
96
|
-
}
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.default = void 0;
|
|
7
|
-
|
|
8
|
-
var _FederationServer = _interopRequireDefault(require("./FederationServer"));
|
|
9
|
-
|
|
10
|
-
var _FederationMediaServerConnection = _interopRequireDefault(require("./FederationMediaServerConnection"));
|
|
11
|
-
|
|
12
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
13
|
-
|
|
14
|
-
class FederationMediaServer extends _FederationServer.default {
|
|
15
|
-
secureConnectionHandler(socket) {
|
|
16
|
-
super.secureConnectionHandler(socket);
|
|
17
|
-
let connection = new _FederationMediaServerConnection.default(this.oblecto, socket);
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
exports.default = FederationMediaServer;
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
export default class FederationMediaServerConnection extends FederationServerConnection {
|
|
2
|
-
constructor(oblecto: any, socket: any);
|
|
3
|
-
fileId: any;
|
|
4
|
-
fileInfo: File | null;
|
|
5
|
-
offset: number;
|
|
6
|
-
setOffset(offset: any): void;
|
|
7
|
-
setFileId(data: any): Promise<void>;
|
|
8
|
-
startStream(): Promise<void>;
|
|
9
|
-
}
|
|
10
|
-
import FederationServerConnection from "./FederationServerConnection";
|
|
11
|
-
import { File } from "../../../models/file";
|
|
@@ -1,83 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.default = void 0;
|
|
7
|
-
|
|
8
|
-
var _FederationServerConnection = _interopRequireDefault(require("./FederationServerConnection"));
|
|
9
|
-
|
|
10
|
-
var _file = require("../../../models/file");
|
|
11
|
-
|
|
12
|
-
var _logger = _interopRequireDefault(require("../../../submodules/logger"));
|
|
13
|
-
|
|
14
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
15
|
-
|
|
16
|
-
class FederationMediaServerConnection extends _FederationServerConnection.default {
|
|
17
|
-
constructor(oblecto, socket) {
|
|
18
|
-
super(oblecto, socket);
|
|
19
|
-
this.fileId = null;
|
|
20
|
-
this.fileInfo = null;
|
|
21
|
-
this.offset = 0;
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
async headerHandler(data) {
|
|
25
|
-
super.headerHandler(data);
|
|
26
|
-
if (!this.authenticated) return;
|
|
27
|
-
let split = data.split(':');
|
|
28
|
-
|
|
29
|
-
switch (split[0]) {
|
|
30
|
-
case 'FILEID':
|
|
31
|
-
await this.setFileId(split[1]);
|
|
32
|
-
break;
|
|
33
|
-
|
|
34
|
-
case 'OFFSET':
|
|
35
|
-
this.setOffset(split[1]);
|
|
36
|
-
break;
|
|
37
|
-
|
|
38
|
-
case 'START':
|
|
39
|
-
await this.startStream();
|
|
40
|
-
break;
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
setOffset(offset) {
|
|
45
|
-
this.offset = offset;
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
async setFileId(data) {
|
|
49
|
-
this.fileId = data;
|
|
50
|
-
this.fileInfo = null;
|
|
51
|
-
|
|
52
|
-
try {
|
|
53
|
-
this.fileInfo = await _file.File.findByPk(this.fileId);
|
|
54
|
-
this.socket.write(`READY:${this.fileId}\n`);
|
|
55
|
-
} catch (e) {
|
|
56
|
-
this.socket.write('ERROR:FILEID\n');
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
async startStream() {
|
|
61
|
-
if (!this.fileInfo) return;
|
|
62
|
-
let streamSession = this.oblecto.streamSessionController.newSession(this.fileInfo, {
|
|
63
|
-
streamType: 'recode',
|
|
64
|
-
target: {
|
|
65
|
-
formats: ['matroska'],
|
|
66
|
-
videoCodecs: ['copy'],
|
|
67
|
-
audioCodecs: ['copy']
|
|
68
|
-
},
|
|
69
|
-
offset: this.offset
|
|
70
|
-
});
|
|
71
|
-
await streamSession.addDestination({
|
|
72
|
-
stream: this.socket
|
|
73
|
-
});
|
|
74
|
-
await streamSession.startStream();
|
|
75
|
-
}
|
|
76
|
-
|
|
77
|
-
async closeHandler() {
|
|
78
|
-
_logger.default.log('INFO', 'Federation media stream has closed');
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
exports.default = FederationMediaServerConnection;
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
/// <reference types="node" />
|
|
2
|
-
export default class FederationServer {
|
|
3
|
-
constructor(oblecto: any, port: any);
|
|
4
|
-
oblecto: any;
|
|
5
|
-
server: tls.Server;
|
|
6
|
-
errorHandler(error: any): void;
|
|
7
|
-
connectionHandler(socket: any): void;
|
|
8
|
-
secureConnectionHandler(socket: any): void;
|
|
9
|
-
close(): void;
|
|
10
|
-
}
|
|
11
|
-
import tls from "tls";
|
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.default = void 0;
|
|
7
|
-
|
|
8
|
-
var _tls = _interopRequireDefault(require("tls"));
|
|
9
|
-
|
|
10
|
-
var _fs = _interopRequireDefault(require("fs"));
|
|
11
|
-
|
|
12
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
13
|
-
|
|
14
|
-
class FederationServer {
|
|
15
|
-
constructor(oblecto, port) {
|
|
16
|
-
this.oblecto = oblecto;
|
|
17
|
-
let options = {
|
|
18
|
-
key: _fs.default.readFileSync(this.oblecto.config.federation.key),
|
|
19
|
-
cert: _fs.default.readFileSync('/etc/oblecto/keys/public-cert.pem')
|
|
20
|
-
};
|
|
21
|
-
this.server = _tls.default.createServer(options, socket => {});
|
|
22
|
-
this.server.listen(port);
|
|
23
|
-
this.server.on('error', err => this.errorHandler(err));
|
|
24
|
-
this.server.on('connection', socket => this.connectionHandler(socket));
|
|
25
|
-
this.server.on('secureConnection', socket => this.secureConnectionHandler(socket));
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
errorHandler(error) {}
|
|
29
|
-
|
|
30
|
-
connectionHandler(socket) {}
|
|
31
|
-
|
|
32
|
-
secureConnectionHandler(socket) {}
|
|
33
|
-
|
|
34
|
-
close() {
|
|
35
|
-
this.server.close();
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
exports.default = FederationServer;
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
export default class FederationServerConnection {
|
|
2
|
-
constructor(oblecto: any, socket: any);
|
|
3
|
-
oblecto: any;
|
|
4
|
-
socket: any;
|
|
5
|
-
dataRead: string;
|
|
6
|
-
clientId: string;
|
|
7
|
-
authenticated: boolean;
|
|
8
|
-
challenge: any;
|
|
9
|
-
dataHandler(chunk: any): void;
|
|
10
|
-
headerHandler(data: any): void;
|
|
11
|
-
clientIdHandler(clientId: any): Promise<void>;
|
|
12
|
-
key: any;
|
|
13
|
-
authHandler(data: any): void;
|
|
14
|
-
closeHandler(): void;
|
|
15
|
-
errorHandler(error: any): void;
|
|
16
|
-
write(header: any, content: any): void;
|
|
17
|
-
close(): void;
|
|
18
|
-
}
|
|
@@ -1,97 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.default = void 0;
|
|
7
|
-
|
|
8
|
-
var _nodeRsa = _interopRequireDefault(require("node-rsa"));
|
|
9
|
-
|
|
10
|
-
var _fs = require("fs");
|
|
11
|
-
|
|
12
|
-
var _uuid = require("uuid");
|
|
13
|
-
|
|
14
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
15
|
-
|
|
16
|
-
class FederationServerConnection {
|
|
17
|
-
constructor(oblecto, socket) {
|
|
18
|
-
this.oblecto = oblecto;
|
|
19
|
-
this.socket = socket;
|
|
20
|
-
this.socket.on('data', chunk => this.dataHandler(chunk));
|
|
21
|
-
this.socket.on('close', () => this.closeHandler());
|
|
22
|
-
this.socket.on('error', error => this.errorHandler(error));
|
|
23
|
-
this.dataRead = '';
|
|
24
|
-
this.clientId = '';
|
|
25
|
-
this.authenticated = false;
|
|
26
|
-
this.challenge = (0, _uuid.v4)();
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
dataHandler(chunk) {
|
|
30
|
-
this.dataRead += chunk.toString();
|
|
31
|
-
let split = this.dataRead.split('\n');
|
|
32
|
-
if (split.length < 2) return;
|
|
33
|
-
|
|
34
|
-
for (let item of split) {
|
|
35
|
-
if (item === '') continue;
|
|
36
|
-
this.dataRead = this.dataRead.replace(item + '\n', '');
|
|
37
|
-
this.headerHandler(item);
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
headerHandler(data) {
|
|
42
|
-
let split = data.split(':');
|
|
43
|
-
|
|
44
|
-
switch (split[0]) {
|
|
45
|
-
case 'IAM':
|
|
46
|
-
this.clientIdHandler(split[1]);
|
|
47
|
-
break;
|
|
48
|
-
|
|
49
|
-
case 'CHALLENGE':
|
|
50
|
-
this.authHandler(split[1]);
|
|
51
|
-
break;
|
|
52
|
-
|
|
53
|
-
default:
|
|
54
|
-
if (!this.authenticated) {
|
|
55
|
-
this.socket.destroy();
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
break;
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
async clientIdHandler(clientId) {
|
|
63
|
-
this.clientId = clientId; // Check if the client server is known
|
|
64
|
-
// If an unknown client is trying to connect, we should just ignore it
|
|
65
|
-
|
|
66
|
-
if (!this.oblecto.config.federation.clients[clientId]) return;
|
|
67
|
-
let key = await _fs.promises.readFile(this.oblecto.config.federation.clients[clientId].key);
|
|
68
|
-
this.key = (0, _nodeRsa.default)(key);
|
|
69
|
-
this.write('CHALLENGE', this.key.encrypt(this.challenge, 'base64'));
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
authHandler(data) {
|
|
73
|
-
if (data === this.challenge) {
|
|
74
|
-
this.authenticated = true;
|
|
75
|
-
this.write('AUTH', 'ACCEPTED');
|
|
76
|
-
return;
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
this.write('AUTH', 'DENIED');
|
|
80
|
-
this.socket.destroy();
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
closeHandler() {}
|
|
84
|
-
|
|
85
|
-
errorHandler(error) {}
|
|
86
|
-
|
|
87
|
-
write(header, content) {
|
|
88
|
-
this.socket.write(`${header}:${content}\n`);
|
|
89
|
-
}
|
|
90
|
-
|
|
91
|
-
close() {
|
|
92
|
-
this.socket.close();
|
|
93
|
-
}
|
|
94
|
-
|
|
95
|
-
}
|
|
96
|
-
|
|
97
|
-
exports.default = FederationServerConnection;
|
|
@@ -1,65 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.default = void 0;
|
|
7
|
-
|
|
8
|
-
var _series = require("../../models/series");
|
|
9
|
-
|
|
10
|
-
var _episode = require("../../models/episode");
|
|
11
|
-
|
|
12
|
-
var _file = require("../../models/file");
|
|
13
|
-
|
|
14
|
-
class FederationEpisodeIndexer {
|
|
15
|
-
constructor(oblecto) {
|
|
16
|
-
this.oblecto = oblecto; // Register task availability to Oblecto queue
|
|
17
|
-
|
|
18
|
-
this.oblecto.queue.registerJob('federationIndexEpisode', async job => {
|
|
19
|
-
await this.indexEpisode(job);
|
|
20
|
-
});
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
async indexEpisode(file) {
|
|
24
|
-
let [fileEntity, fileInserted] = await _file.File.findOrCreate({
|
|
25
|
-
where: {
|
|
26
|
-
host: file.host,
|
|
27
|
-
path: file.id
|
|
28
|
-
},
|
|
29
|
-
defaults: {
|
|
30
|
-
name: '',
|
|
31
|
-
directory: '',
|
|
32
|
-
extension: '',
|
|
33
|
-
duration: file.duration
|
|
34
|
-
}
|
|
35
|
-
});
|
|
36
|
-
let seriesQuery = {};
|
|
37
|
-
if (file.fileInfo.seriesTvdbid) seriesQuery.tvdbid = file.fileInfo.seriesTvdbid;
|
|
38
|
-
if (file.fileInfo.seriesTmdbid) seriesQuery.tmdbid = file.fileInfo.seriesTmdbid;
|
|
39
|
-
let [series, seriesInserted] = await _series.Series.findOrCreate({
|
|
40
|
-
where: seriesQuery
|
|
41
|
-
});
|
|
42
|
-
let episodeQuery = {
|
|
43
|
-
SeriesId: series.id
|
|
44
|
-
};
|
|
45
|
-
if (file.fileInfo.tvdbid) episodeQuery.tvdbid = file.fileInfo.tvdbid;
|
|
46
|
-
if (file.fileInfo.tmdbid) episodeQuery.tmdbid = file.fileInfo.tmdbid;
|
|
47
|
-
let [episode, episodeInserted] = await _episode.Episode.findOrCreate({
|
|
48
|
-
where: episodeQuery,
|
|
49
|
-
defaults: {
|
|
50
|
-
airedEpisodeNumber: file.fileInfo.episode,
|
|
51
|
-
airedSeason: file.fileInfo.season
|
|
52
|
-
}
|
|
53
|
-
});
|
|
54
|
-
if (!episodeInserted) return;
|
|
55
|
-
await episode.addFile(fileEntity);
|
|
56
|
-
await this.oblecto.seriesUpdateCollector.collectEpisode(episode);
|
|
57
|
-
await this.oblecto.seriesArtworkCollector.collectArtworkEpisodeBanner(episode);
|
|
58
|
-
if (!seriesInserted) return;
|
|
59
|
-
await this.oblecto.seriesUpdateCollector.collectSeries(series);
|
|
60
|
-
await this.oblecto.seriesArtworkCollector.collectArtworkSeriesPoster(series);
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
exports.default = FederationEpisodeIndexer;
|
|
@@ -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 _file = require("../../models/file");
|
|
9
|
-
|
|
10
|
-
var _movie = require("../../models/movie");
|
|
11
|
-
|
|
12
|
-
class FederationMovieIndexer {
|
|
13
|
-
constructor(oblecto) {
|
|
14
|
-
this.oblecto = oblecto; // Register task availability to Oblecto queue
|
|
15
|
-
|
|
16
|
-
this.oblecto.queue.registerJob('federationIndexMovie', async job => {
|
|
17
|
-
await this.indexMovie(job);
|
|
18
|
-
});
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
async indexMovie(file) {
|
|
22
|
-
let [fileEntity, fileInserted] = await _file.File.findOrCreate({
|
|
23
|
-
where: {
|
|
24
|
-
host: file.host,
|
|
25
|
-
path: file.id
|
|
26
|
-
},
|
|
27
|
-
defaults: {
|
|
28
|
-
name: '',
|
|
29
|
-
directory: '',
|
|
30
|
-
extension: '',
|
|
31
|
-
duration: file.duration
|
|
32
|
-
}
|
|
33
|
-
});
|
|
34
|
-
let [movie, movieInserted] = await _movie.Movie.findOrCreate({
|
|
35
|
-
where: {
|
|
36
|
-
tmdbid: file.fileInfo.tmdbid
|
|
37
|
-
}
|
|
38
|
-
});
|
|
39
|
-
await movie.addFile(fileEntity);
|
|
40
|
-
if (!movieInserted) return;
|
|
41
|
-
await this.oblecto.movieUpdateCollector.collectMovie(movie);
|
|
42
|
-
await this.oblecto.movieArtworkCollector.collectArtworkMovieFanart(movie);
|
|
43
|
-
await this.oblecto.movieArtworkCollector.collectArtworkMoviePoster(movie);
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
exports.default = FederationMovieIndexer;
|