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,46 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.default = void 0;
|
|
7
|
-
|
|
8
|
-
var _logger = _interopRequireDefault(require("../../submodules/logger"));
|
|
9
|
-
|
|
10
|
-
var _IdentificationError = _interopRequireDefault(require("../errors/IdentificationError"));
|
|
11
|
-
|
|
12
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
13
|
-
|
|
14
|
-
class AggregateUpdateRetriever {
|
|
15
|
-
/**
|
|
16
|
-
* Wrapper class to combine multiple entity updaters and return information as a combined json output
|
|
17
|
-
*/
|
|
18
|
-
constructor() {
|
|
19
|
-
this.retrievers = [];
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
loadRetriever(retriever) {
|
|
23
|
-
this.retrievers.push(retriever);
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
async retrieveInformation(...args) {
|
|
27
|
-
let information = {};
|
|
28
|
-
|
|
29
|
-
for (let retriever of this.retrievers) {
|
|
30
|
-
try {
|
|
31
|
-
let currentInformation = await retriever.retrieveInformation(...args);
|
|
32
|
-
information = { ...information,
|
|
33
|
-
...currentInformation
|
|
34
|
-
};
|
|
35
|
-
} catch (e) {
|
|
36
|
-
_logger.default.log(e);
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
if (Object.keys(information).length === 0) throw new _IdentificationError.default('No identification match could be found');
|
|
41
|
-
return information;
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
exports.default = AggregateUpdateRetriever;
|
|
@@ -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 _fs = require("fs");
|
|
9
|
-
|
|
10
|
-
var _axiosTimeout = _interopRequireDefault(require("../../submodules/axiosTimeout"));
|
|
11
|
-
|
|
12
|
-
var _logger = _interopRequireDefault(require("../../submodules/logger"));
|
|
13
|
-
|
|
14
|
-
var _DebugExtendableError = _interopRequireDefault(require("../errors/DebugExtendableError"));
|
|
15
|
-
|
|
16
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
17
|
-
|
|
18
|
-
class Downloader {
|
|
19
|
-
/**
|
|
20
|
-
* Downloader module for oblecto
|
|
21
|
-
*
|
|
22
|
-
* @param { Oblecto } oblecto
|
|
23
|
-
*/
|
|
24
|
-
constructor(oblecto) {
|
|
25
|
-
this.oblecto = oblecto;
|
|
26
|
-
this.oblecto.queue.registerJob('downloadFile', async job => {
|
|
27
|
-
await Downloader.download(job.url, job.dest, job.overwrite);
|
|
28
|
-
});
|
|
29
|
-
}
|
|
30
|
-
/**
|
|
31
|
-
* Download a file
|
|
32
|
-
*
|
|
33
|
-
* @param { String } url - URL to download
|
|
34
|
-
* @param { String } dest - Destination path for file
|
|
35
|
-
* @param { Boolean } overwrite - Overwrite if it it exists
|
|
36
|
-
* @returns {Promise<void>}
|
|
37
|
-
*/
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
static async download(url, dest, overwrite) {
|
|
41
|
-
let flags = 'wx';
|
|
42
|
-
|
|
43
|
-
if (overwrite) {
|
|
44
|
-
flags = 'w';
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
let {
|
|
48
|
-
data
|
|
49
|
-
} = await (0, _axiosTimeout.default)({
|
|
50
|
-
method: 'get',
|
|
51
|
-
url,
|
|
52
|
-
responseType: 'arraybuffer',
|
|
53
|
-
responseEncoding: 'binary'
|
|
54
|
-
});
|
|
55
|
-
await _fs.promises.writeFile(dest, data, {
|
|
56
|
-
flags
|
|
57
|
-
});
|
|
58
|
-
}
|
|
59
|
-
/**
|
|
60
|
-
* Download the first url which doesn't return an error code
|
|
61
|
-
*
|
|
62
|
-
* @param { [String] } urls - Array of urls to attempt
|
|
63
|
-
* @param { String } path - Destination path for file
|
|
64
|
-
* @returns {Promise<void>}
|
|
65
|
-
*/
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
static async attemptDownload(urls, path) {
|
|
69
|
-
for (let url of urls) {
|
|
70
|
-
try {
|
|
71
|
-
await Downloader.download(url, path);
|
|
72
|
-
return;
|
|
73
|
-
} catch (err) {
|
|
74
|
-
_logger.default.log('DEBUG', `Error while downloading ${url}. Continuing to next url`);
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
throw new _DebugExtendableError.default('Failed to download any url from array');
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
exports.default = Downloader;
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.default = void 0;
|
|
7
|
-
|
|
8
|
-
var _ExtendableError = _interopRequireDefault(require("./ExtendableError"));
|
|
9
|
-
|
|
10
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
11
|
-
|
|
12
|
-
class DebugExtendableError extends _ExtendableError.default {
|
|
13
|
-
constructor(message) {
|
|
14
|
-
super(message);
|
|
15
|
-
this.level = 'DEBUG';
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
exports.default = DebugExtendableError;
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.default = void 0;
|
|
7
|
-
|
|
8
|
-
class ExtendableError extends Error {
|
|
9
|
-
constructor(message) {
|
|
10
|
-
super(message);
|
|
11
|
-
this.name = this.constructor.name;
|
|
12
|
-
|
|
13
|
-
if (typeof Error.captureStackTrace === 'function') {
|
|
14
|
-
Error.captureStackTrace(this, this.constructor);
|
|
15
|
-
} else {
|
|
16
|
-
this.stack = new Error(message).stack;
|
|
17
|
-
}
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
exports.default = ExtendableError;
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.default = void 0;
|
|
7
|
-
|
|
8
|
-
var _DebugExtendableError = _interopRequireDefault(require("./DebugExtendableError"));
|
|
9
|
-
|
|
10
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
11
|
-
|
|
12
|
-
class FileExistsError extends _DebugExtendableError.default {}
|
|
13
|
-
|
|
14
|
-
exports.default = FileExistsError;
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.default = void 0;
|
|
7
|
-
|
|
8
|
-
var _InfoExtendableError = _interopRequireDefault(require("./InfoExtendableError"));
|
|
9
|
-
|
|
10
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
11
|
-
|
|
12
|
-
class IdentificationError extends _InfoExtendableError.default {}
|
|
13
|
-
|
|
14
|
-
exports.default = IdentificationError;
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.default = void 0;
|
|
7
|
-
|
|
8
|
-
var _ExtendableError = _interopRequireDefault(require("./ExtendableError"));
|
|
9
|
-
|
|
10
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
11
|
-
|
|
12
|
-
class InfoExtendableError extends _ExtendableError.default {
|
|
13
|
-
constructor(message) {
|
|
14
|
-
super(message);
|
|
15
|
-
this.level = 'INFO';
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
exports.default = InfoExtendableError;
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.default = void 0;
|
|
7
|
-
|
|
8
|
-
var _WarnExtendableError = _interopRequireDefault(require("./WarnExtendableError"));
|
|
9
|
-
|
|
10
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
11
|
-
|
|
12
|
-
class VideoAnalysisError extends _WarnExtendableError.default {}
|
|
13
|
-
|
|
14
|
-
exports.default = VideoAnalysisError;
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
const ExtendableError_1 = __importDefault(require("./ExtendableError"));
|
|
7
|
-
class VideoIdentificationError extends ExtendableError_1.default {
|
|
8
|
-
}
|
|
9
|
-
exports.default = VideoIdentificationError;
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.default = void 0;
|
|
7
|
-
|
|
8
|
-
var _ExtendableError = _interopRequireDefault(require("./ExtendableError"));
|
|
9
|
-
|
|
10
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
11
|
-
|
|
12
|
-
class WarnExtendableError extends _ExtendableError.default {
|
|
13
|
-
constructor(message) {
|
|
14
|
-
super(message);
|
|
15
|
-
this.level = 'WARN';
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
exports.default = WarnExtendableError;
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
/// <reference types="node" />
|
|
2
|
-
export default class FederationClient {
|
|
3
|
-
/**
|
|
4
|
-
*
|
|
5
|
-
* @param {Oblecto} oblecto
|
|
6
|
-
* @param {string} server
|
|
7
|
-
*/
|
|
8
|
-
constructor(oblecto: any, server: string);
|
|
9
|
-
oblecto: any;
|
|
10
|
-
serverName: string;
|
|
11
|
-
host: any;
|
|
12
|
-
port: number;
|
|
13
|
-
isSecure: boolean;
|
|
14
|
-
authenticated: boolean;
|
|
15
|
-
eventEmitter: any;
|
|
16
|
-
dataRead: string;
|
|
17
|
-
connect(): Promise<void>;
|
|
18
|
-
socket: tls.TLSSocket | undefined;
|
|
19
|
-
write(header: any, content: any): void;
|
|
20
|
-
dataHandler(chunk: any): void;
|
|
21
|
-
headerHandler(data: any): void;
|
|
22
|
-
challengeHandler(data: any): Promise<void>;
|
|
23
|
-
authAcceptHandler(data: any): Promise<void>;
|
|
24
|
-
secureConnectHandler(): void;
|
|
25
|
-
errorHandler(error: any): void;
|
|
26
|
-
closeHandler(): void;
|
|
27
|
-
waitForSecure(): Promise<any>;
|
|
28
|
-
waitForAuth(): Promise<any>;
|
|
29
|
-
close(): void;
|
|
30
|
-
}
|
|
31
|
-
import tls from "tls";
|
|
@@ -1,127 +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 = require("fs");
|
|
11
|
-
|
|
12
|
-
var _nodeRsa = _interopRequireDefault(require("node-rsa"));
|
|
13
|
-
|
|
14
|
-
var _events = _interopRequireDefault(require("events"));
|
|
15
|
-
|
|
16
|
-
var _logger = _interopRequireDefault(require("../../../submodules/logger"));
|
|
17
|
-
|
|
18
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
19
|
-
|
|
20
|
-
class FederationClient {
|
|
21
|
-
/**
|
|
22
|
-
*
|
|
23
|
-
* @param {Oblecto} oblecto
|
|
24
|
-
* @param {string} server
|
|
25
|
-
*/
|
|
26
|
-
constructor(oblecto, server) {
|
|
27
|
-
this.oblecto = oblecto;
|
|
28
|
-
this.serverName = server;
|
|
29
|
-
this.host = oblecto.config.federation.servers[server].address;
|
|
30
|
-
this.port = 9131;
|
|
31
|
-
this.isSecure = false;
|
|
32
|
-
this.authenticated = false;
|
|
33
|
-
this.eventEmitter = new _events.default();
|
|
34
|
-
this.dataRead = '';
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
async connect() {
|
|
38
|
-
_logger.default.log('INFO', 'Connecting to federation master:', this.serverName);
|
|
39
|
-
|
|
40
|
-
this.socket = _tls.default.connect({
|
|
41
|
-
host: this.host,
|
|
42
|
-
port: this.port,
|
|
43
|
-
ca: [(0, _fs.readFileSync)(this.oblecto.config.federation.servers[this.serverName].ca)]
|
|
44
|
-
});
|
|
45
|
-
this.socket.on('data', chunk => this.dataHandler(chunk));
|
|
46
|
-
this.socket.on('secureConnect', () => this.secureConnectHandler());
|
|
47
|
-
this.socket.on('error', error => this.errorHandler(error));
|
|
48
|
-
this.socket.on('close', () => this.closeHandler());
|
|
49
|
-
if (!this.isSecure) await this.waitForSecure();
|
|
50
|
-
this.socket.write(`IAM:${this.oblecto.config.federation.uuid}\n`);
|
|
51
|
-
await this.waitForAuth();
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
write(header, content) {
|
|
55
|
-
this.socket.write(`${header}:${content}\n`);
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
dataHandler(chunk) {
|
|
59
|
-
this.dataRead += chunk.toString();
|
|
60
|
-
let split = this.dataRead.split('\n');
|
|
61
|
-
if (split.length < 2) return;
|
|
62
|
-
|
|
63
|
-
for (let item of split) {
|
|
64
|
-
if (item === '') continue;
|
|
65
|
-
this.dataRead = this.dataRead.replace(item + '\n', '');
|
|
66
|
-
this.headerHandler(item);
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
headerHandler(data) {
|
|
71
|
-
let split = data.split(':');
|
|
72
|
-
|
|
73
|
-
switch (split[0]) {
|
|
74
|
-
case 'CHALLENGE':
|
|
75
|
-
this.challengeHandler(split[1]);
|
|
76
|
-
break;
|
|
77
|
-
|
|
78
|
-
case 'AUTH':
|
|
79
|
-
this.authAcceptHandler(split[1]);
|
|
80
|
-
break;
|
|
81
|
-
}
|
|
82
|
-
}
|
|
83
|
-
|
|
84
|
-
async challengeHandler(data) {
|
|
85
|
-
const pemKey = await _fs.promises.readFile(this.oblecto.config.federation.key);
|
|
86
|
-
const key = (0, _nodeRsa.default)(pemKey);
|
|
87
|
-
const decrypted = key.decrypt(data, 'ascii');
|
|
88
|
-
this.write('CHALLENGE', decrypted);
|
|
89
|
-
}
|
|
90
|
-
|
|
91
|
-
async authAcceptHandler(data) {
|
|
92
|
-
if (data === 'ACCEPTED') {
|
|
93
|
-
this.authenticated = true;
|
|
94
|
-
this.eventEmitter.emit('auth');
|
|
95
|
-
return;
|
|
96
|
-
}
|
|
97
|
-
|
|
98
|
-
delete this;
|
|
99
|
-
}
|
|
100
|
-
|
|
101
|
-
secureConnectHandler() {
|
|
102
|
-
this.isSecure = true;
|
|
103
|
-
}
|
|
104
|
-
|
|
105
|
-
errorHandler(error) {}
|
|
106
|
-
|
|
107
|
-
closeHandler() {}
|
|
108
|
-
|
|
109
|
-
waitForSecure() {
|
|
110
|
-
return new Promise((resolve, reject) => {
|
|
111
|
-
this.socket.once('secureConnect', resolve);
|
|
112
|
-
});
|
|
113
|
-
}
|
|
114
|
-
|
|
115
|
-
waitForAuth() {
|
|
116
|
-
return new Promise((resolve, reject) => {
|
|
117
|
-
this.eventEmitter.once('auth', resolve);
|
|
118
|
-
});
|
|
119
|
-
}
|
|
120
|
-
|
|
121
|
-
close() {
|
|
122
|
-
this.socket.destroy();
|
|
123
|
-
}
|
|
124
|
-
|
|
125
|
-
}
|
|
126
|
-
|
|
127
|
-
exports.default = FederationClient;
|
|
@@ -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 _FederationDataClient = _interopRequireDefault(require("./FederationDataClient"));
|
|
9
|
-
|
|
10
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
11
|
-
|
|
12
|
-
class FederationClientController {
|
|
13
|
-
constructor(oblecto) {
|
|
14
|
-
this.oblecto = oblecto;
|
|
15
|
-
this.syncServers = [];
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
async addAllSyncMasters() {
|
|
19
|
-
for (let server in this.oblecto.config.federation.servers) {
|
|
20
|
-
await this.addSyncMaster(server);
|
|
21
|
-
}
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
async addSyncMaster(server) {
|
|
25
|
-
let client = new _FederationDataClient.default(this.oblecto, server);
|
|
26
|
-
await client.connect();
|
|
27
|
-
await client.requestFullSync();
|
|
28
|
-
this.syncServers.push(client);
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
requestFullSync() {
|
|
32
|
-
for (let server of this.syncServers) {
|
|
33
|
-
server.requestFullSync();
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
close() {
|
|
38
|
-
for (let server of this.syncServers) {
|
|
39
|
-
server.close();
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
exports.default = FederationClientController;
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
export default class FederationDataClient extends FederationClient {
|
|
2
|
-
/**
|
|
3
|
-
*
|
|
4
|
-
* @param {Oblecto} oblecto
|
|
5
|
-
* @param {string} server
|
|
6
|
-
*/
|
|
7
|
-
constructor(oblecto: any, server: string);
|
|
8
|
-
requestFullSync(): void;
|
|
9
|
-
fileHandler(data: any): Promise<void>;
|
|
10
|
-
}
|
|
11
|
-
import FederationClient from "./FederationClient";
|
|
@@ -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 _FederationClient = _interopRequireDefault(require("./FederationClient"));
|
|
9
|
-
|
|
10
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
11
|
-
|
|
12
|
-
class FederationDataClient extends _FederationClient.default {
|
|
13
|
-
/**
|
|
14
|
-
*
|
|
15
|
-
* @param {Oblecto} oblecto
|
|
16
|
-
* @param {string} server
|
|
17
|
-
*/
|
|
18
|
-
constructor(oblecto, server) {
|
|
19
|
-
super(oblecto, server);
|
|
20
|
-
this.port = oblecto.config.federation.servers[server].dataPort;
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
headerHandler(data) {
|
|
24
|
-
super.headerHandler(data);
|
|
25
|
-
let split = data.split(':');
|
|
26
|
-
|
|
27
|
-
switch (split[0]) {
|
|
28
|
-
case 'FILE':
|
|
29
|
-
this.fileHandler(split[1]);
|
|
30
|
-
break;
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
requestFullSync() {
|
|
35
|
-
this.write('SYNC', 'FULL');
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
async fileHandler(data) {
|
|
39
|
-
let input = Buffer.from(data, 'base64').toString();
|
|
40
|
-
let file = JSON.parse(input);
|
|
41
|
-
file.host = this.serverName;
|
|
42
|
-
|
|
43
|
-
switch (file.fileInfo.type) {
|
|
44
|
-
case 'episode':
|
|
45
|
-
this.oblecto.queue.queueJob('federationIndexEpisode', file);
|
|
46
|
-
break;
|
|
47
|
-
|
|
48
|
-
case 'movie':
|
|
49
|
-
this.oblecto.queue.queueJob('federationIndexMovie', file);
|
|
50
|
-
break;
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
exports.default = FederationDataClient;
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
export default class FederationMediaClient extends FederationClient {
|
|
2
|
-
constructor(oblecto: any, server: any);
|
|
3
|
-
fileId: any;
|
|
4
|
-
streamDestination: any;
|
|
5
|
-
startStreamFile(fileId: any): Promise<void>;
|
|
6
|
-
setStreamDestination(dest: any): Promise<void>;
|
|
7
|
-
readyHandler(data: any): Promise<void>;
|
|
8
|
-
startStream(): Promise<void>;
|
|
9
|
-
setStreamOffset(offset: any): Promise<void>;
|
|
10
|
-
closeConnection(): Promise<void>;
|
|
11
|
-
}
|
|
12
|
-
import FederationClient from "./FederationClient";
|