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,32 +0,0 @@
|
|
|
1
|
-
import Oblecto from "../oblecto";
|
|
2
|
-
export default class Queue {
|
|
3
|
-
private oblecto;
|
|
4
|
-
private readonly jobs;
|
|
5
|
-
private queue;
|
|
6
|
-
constructor(oblecto: Oblecto);
|
|
7
|
-
/**
|
|
8
|
-
* Define a new job
|
|
9
|
-
* @param {string} id
|
|
10
|
-
* @param {function} job
|
|
11
|
-
*/
|
|
12
|
-
registerJob(id: any, job: any): void;
|
|
13
|
-
/**
|
|
14
|
-
* Add a job to the end of the queue
|
|
15
|
-
* @param {string} id
|
|
16
|
-
* @param {object} attr
|
|
17
|
-
* @param {number} priority
|
|
18
|
-
*/
|
|
19
|
-
queueJob(id: any, attr: any, priority?: number): void;
|
|
20
|
-
/**
|
|
21
|
-
* Adds a queue which should be completed as soon as possible
|
|
22
|
-
* @param {string} id
|
|
23
|
-
* @param {object} attr
|
|
24
|
-
*/
|
|
25
|
-
lowPriorityJob(id: any, attr: any): void;
|
|
26
|
-
/**
|
|
27
|
-
* Add a job to the front of the queue
|
|
28
|
-
* @param {string} id
|
|
29
|
-
* @param {object} attr
|
|
30
|
-
*/
|
|
31
|
-
pushJob(id: any, attr: any): void;
|
|
32
|
-
}
|
package/dist/lib/queue/index.js
DELETED
|
@@ -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 _async = _interopRequireDefault(require("async"));
|
|
9
|
-
|
|
10
|
-
var _logger = _interopRequireDefault(require("../../submodules/logger"));
|
|
11
|
-
|
|
12
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
13
|
-
|
|
14
|
-
class Queue {
|
|
15
|
-
/**
|
|
16
|
-
*
|
|
17
|
-
* @param { Number } concurrency - Amount of tasks to handle simultaneously
|
|
18
|
-
*/
|
|
19
|
-
constructor(concurrency) {
|
|
20
|
-
this.jobs = {};
|
|
21
|
-
this.queue = _async.default.priorityQueue((job, callback) => {
|
|
22
|
-
if (!this.jobs[job.id]) return callback();
|
|
23
|
-
let jobTimeout = setTimeout(() => {
|
|
24
|
-
_logger.default.log('WARN', `Job ${job.id} is taking a long time. Maybe something is wrong?`, JSON.stringify(job));
|
|
25
|
-
}, 20000);
|
|
26
|
-
this.jobs[job.id](job.attr).then(() => {
|
|
27
|
-
clearTimeout(jobTimeout);
|
|
28
|
-
callback();
|
|
29
|
-
}).catch(err => {
|
|
30
|
-
clearTimeout(jobTimeout);
|
|
31
|
-
|
|
32
|
-
_logger.default.log(err);
|
|
33
|
-
|
|
34
|
-
callback();
|
|
35
|
-
});
|
|
36
|
-
}, concurrency);
|
|
37
|
-
}
|
|
38
|
-
/**
|
|
39
|
-
* Define a new job
|
|
40
|
-
* @param {string} id
|
|
41
|
-
* @param {function} job
|
|
42
|
-
*/
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
registerJob(id, job) {
|
|
46
|
-
if (this.jobs[id]) {
|
|
47
|
-
_logger.default.log('ERROR', `A job has been registered which was already registered: ${id}`);
|
|
48
|
-
|
|
49
|
-
_logger.default.log('ERROR', 'This should not happen. Shutting down server');
|
|
50
|
-
|
|
51
|
-
this.oblecto.close();
|
|
52
|
-
return;
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
_logger.default.log('INFO', 'New queue item has been registered:', id);
|
|
56
|
-
|
|
57
|
-
this.jobs[id] = job;
|
|
58
|
-
}
|
|
59
|
-
/**
|
|
60
|
-
* Add a job to the end of the queue
|
|
61
|
-
* @param {string} id
|
|
62
|
-
* @param {object} attr
|
|
63
|
-
* @param {number} priority
|
|
64
|
-
*/
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
queueJob(id, attr, priority = 5) {
|
|
68
|
-
this.queue.push({
|
|
69
|
-
id,
|
|
70
|
-
attr
|
|
71
|
-
}, priority);
|
|
72
|
-
}
|
|
73
|
-
/**
|
|
74
|
-
* Adds a queue which should be completed as soon as possible
|
|
75
|
-
* @param {string} id
|
|
76
|
-
* @param {object} attr
|
|
77
|
-
*/
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
lowPriorityJob(id, attr) {
|
|
81
|
-
this.queueJob(id, attr, 20);
|
|
82
|
-
}
|
|
83
|
-
/**
|
|
84
|
-
* Add a job to the front of the queue
|
|
85
|
-
* @param {string} id
|
|
86
|
-
* @param {object} attr
|
|
87
|
-
*/
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
pushJob(id, attr) {
|
|
91
|
-
this.queueJob(id, attr, 0);
|
|
92
|
-
}
|
|
93
|
-
|
|
94
|
-
}
|
|
95
|
-
|
|
96
|
-
exports.default = Queue;
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
/// <reference types="node" />
|
|
2
|
-
export default class RealtimeClient extends events.EventEmitter {
|
|
3
|
-
/**
|
|
4
|
-
* @param {Oblecto} oblecto
|
|
5
|
-
* @param {*} socket
|
|
6
|
-
*/
|
|
7
|
-
constructor(oblecto: any, socket: any);
|
|
8
|
-
clientName: string;
|
|
9
|
-
oblecto: any;
|
|
10
|
-
socket: any;
|
|
11
|
-
user: any;
|
|
12
|
-
storage: {
|
|
13
|
-
series: {};
|
|
14
|
-
movie: {};
|
|
15
|
-
};
|
|
16
|
-
authenticationHandler(data: any): void;
|
|
17
|
-
playingHandler(data: any): void;
|
|
18
|
-
playingEpisodeHandler(data: any): void;
|
|
19
|
-
playingMovieHandler(data: any): void;
|
|
20
|
-
disconnectHandler(): void;
|
|
21
|
-
saveEpisodeTrack(id: any): Promise<void>;
|
|
22
|
-
saveMovieTrack(id: any): Promise<void>;
|
|
23
|
-
saveAllTracks(): Promise<void>;
|
|
24
|
-
playEpisode(episodeId: any): Promise<void>;
|
|
25
|
-
playMovie(movieId: any): Promise<void>;
|
|
26
|
-
}
|
|
27
|
-
import events from "events";
|
|
@@ -1,137 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.default = void 0;
|
|
7
|
-
|
|
8
|
-
var _jsonwebtoken = _interopRequireDefault(require("jsonwebtoken"));
|
|
9
|
-
|
|
10
|
-
var _events = require("events");
|
|
11
|
-
|
|
12
|
-
var _trackEpisode = require("../../models/trackEpisode");
|
|
13
|
-
|
|
14
|
-
var _trackMovie = require("../../models/trackMovie");
|
|
15
|
-
|
|
16
|
-
var _logger = _interopRequireDefault(require("../../submodules/logger"));
|
|
17
|
-
|
|
18
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
19
|
-
|
|
20
|
-
class RealtimeClient extends _events.EventEmitter {
|
|
21
|
-
/**
|
|
22
|
-
* @param {Oblecto} oblecto
|
|
23
|
-
* @param {*} socket
|
|
24
|
-
*/
|
|
25
|
-
constructor(oblecto, socket) {
|
|
26
|
-
super();
|
|
27
|
-
this.clientName = 'default';
|
|
28
|
-
this.oblecto = oblecto;
|
|
29
|
-
this.socket = socket;
|
|
30
|
-
this.user = null;
|
|
31
|
-
this.storage = {
|
|
32
|
-
series: {},
|
|
33
|
-
movie: {}
|
|
34
|
-
};
|
|
35
|
-
this.socket.on('authenticate', data => this.authenticationHandler(data));
|
|
36
|
-
this.socket.on('playing', data => this.playingHandler(data));
|
|
37
|
-
this.socket.on('disconnect', () => this.disconnectHandler());
|
|
38
|
-
setInterval(() => {
|
|
39
|
-
this.saveAllTracks();
|
|
40
|
-
}, 10000);
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
authenticationHandler(data) {
|
|
44
|
-
try {
|
|
45
|
-
this.user = _jsonwebtoken.default.verify(data.token, this.oblecto.config.authentication.secret);
|
|
46
|
-
} catch (e) {
|
|
47
|
-
_logger.default.log('WARN', 'An unauthorized user attempted connection to realtime server');
|
|
48
|
-
|
|
49
|
-
_logger.default.log('WARN', 'Disconnecting client...');
|
|
50
|
-
|
|
51
|
-
this.socket.disconnect();
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
playingHandler(data) {
|
|
56
|
-
if (this.user == null) return;
|
|
57
|
-
if (data.type === 'tv') return this.playingEpisodeHandler(data);
|
|
58
|
-
if (data.type === 'movie') return this.playingMovieHandler(data);
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
playingEpisodeHandler(data) {
|
|
62
|
-
this.storage.series[data.episodeId] = data;
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
playingMovieHandler(data) {
|
|
66
|
-
this.storage.movie[data.movieId] = data;
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
disconnectHandler() {
|
|
70
|
-
this.emit('disconnect');
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
async saveEpisodeTrack(id) {
|
|
74
|
-
if (this.user === null) return;
|
|
75
|
-
let [item, created] = await _trackEpisode.TrackEpisode.findOrCreate({
|
|
76
|
-
where: {
|
|
77
|
-
UserId: this.user.id,
|
|
78
|
-
EpisodeId: id
|
|
79
|
-
},
|
|
80
|
-
defaults: {
|
|
81
|
-
time: this.storage.series[id].time,
|
|
82
|
-
progress: this.storage.series[id].progress
|
|
83
|
-
}
|
|
84
|
-
});
|
|
85
|
-
if (created) return;
|
|
86
|
-
await item.update({
|
|
87
|
-
time: this.storage.series[id].time,
|
|
88
|
-
progress: this.storage.series[id].progress
|
|
89
|
-
});
|
|
90
|
-
delete this.storage.series[id];
|
|
91
|
-
}
|
|
92
|
-
|
|
93
|
-
async saveMovieTrack(id) {
|
|
94
|
-
if (this.user == null) return;
|
|
95
|
-
let [item, created] = await _trackMovie.TrackMovie.findOrCreate({
|
|
96
|
-
where: {
|
|
97
|
-
UserId: this.user.id,
|
|
98
|
-
MovieId: id
|
|
99
|
-
},
|
|
100
|
-
defaults: {
|
|
101
|
-
time: this.storage.movie[id].time,
|
|
102
|
-
progress: this.storage.movie[id].progress
|
|
103
|
-
}
|
|
104
|
-
});
|
|
105
|
-
if (created) return;
|
|
106
|
-
await item.update({
|
|
107
|
-
time: this.storage.movie[id].time,
|
|
108
|
-
progress: this.storage.movie[id].progress
|
|
109
|
-
});
|
|
110
|
-
delete this.storage.movie[id];
|
|
111
|
-
}
|
|
112
|
-
|
|
113
|
-
async saveAllTracks() {
|
|
114
|
-
for (let i in this.storage.series) {
|
|
115
|
-
await this.saveEpisodeTrack(i);
|
|
116
|
-
}
|
|
117
|
-
|
|
118
|
-
for (let i in this.storage.movie) {
|
|
119
|
-
await this.saveMovieTrack(i);
|
|
120
|
-
}
|
|
121
|
-
}
|
|
122
|
-
|
|
123
|
-
async playEpisode(episodeId) {
|
|
124
|
-
this.socket.emit('play', {
|
|
125
|
-
episodeId
|
|
126
|
-
});
|
|
127
|
-
}
|
|
128
|
-
|
|
129
|
-
async playMovie(movieId) {
|
|
130
|
-
this.socket.emit('play', {
|
|
131
|
-
movieId
|
|
132
|
-
});
|
|
133
|
-
}
|
|
134
|
-
|
|
135
|
-
}
|
|
136
|
-
|
|
137
|
-
exports.default = RealtimeClient;
|
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.default = void 0;
|
|
7
|
-
|
|
8
|
-
var _socket = _interopRequireDefault(require("socket.io"));
|
|
9
|
-
|
|
10
|
-
var _RealtimeClient = _interopRequireDefault(require("./RealtimeClient"));
|
|
11
|
-
|
|
12
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
13
|
-
|
|
14
|
-
class RealtimeController {
|
|
15
|
-
/**
|
|
16
|
-
*
|
|
17
|
-
* @param {Oblecto} oblecto
|
|
18
|
-
*/
|
|
19
|
-
constructor(oblecto) {
|
|
20
|
-
this.oblecto = oblecto;
|
|
21
|
-
this.clients = {};
|
|
22
|
-
this.server = _socket.default.listen(oblecto.oblectoAPI.server.server, {
|
|
23
|
-
log: false,
|
|
24
|
-
agent: false,
|
|
25
|
-
origins: '*:*',
|
|
26
|
-
transports: ['websocket', 'polling']
|
|
27
|
-
});
|
|
28
|
-
this.server.on('connection', socket => {
|
|
29
|
-
this.connectionHandler(socket);
|
|
30
|
-
});
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
connectionHandler(socket) {
|
|
34
|
-
this.clients[socket.id] = new _RealtimeClient.default(this.oblecto, socket);
|
|
35
|
-
this.clients[socket.id].on('disconnect', () => {
|
|
36
|
-
delete this.clients[socket.id];
|
|
37
|
-
});
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
close() {
|
|
41
|
-
for (let client of Object.keys(this.clients)) {
|
|
42
|
-
this.clients[client].disconnect();
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
this.server.close();
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
exports.default = RealtimeController;
|
|
@@ -1,109 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.default = void 0;
|
|
7
|
-
|
|
8
|
-
var _redis = _interopRequireDefault(require("redis"));
|
|
9
|
-
|
|
10
|
-
var _logger = _interopRequireDefault(require("../../submodules/logger"));
|
|
11
|
-
|
|
12
|
-
var _util = require("util");
|
|
13
|
-
|
|
14
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
15
|
-
|
|
16
|
-
class RedisQueue {
|
|
17
|
-
constructor(oblecto) {
|
|
18
|
-
this.oblecto = oblecto;
|
|
19
|
-
this.jobs = {};
|
|
20
|
-
this.workers = [];
|
|
21
|
-
this.stop = false;
|
|
22
|
-
this.redisClient = _redis.default.createClient({
|
|
23
|
-
host: this.oblecto.config.queue.host
|
|
24
|
-
});
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
startWorkers() {
|
|
28
|
-
for (let i = 0; i < this.oblecto.config.queue.concurrency; i++) {
|
|
29
|
-
_logger.default.log('INFO', 'Setting up redis queue worker');
|
|
30
|
-
|
|
31
|
-
this.workers[i] = this.queueWorker();
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
close() {
|
|
36
|
-
this.stop = true;
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
async queueWorker() {
|
|
40
|
-
const lpop = (0, _util.promisify)(this.redisClient.lpop).bind(this.redisClient);
|
|
41
|
-
|
|
42
|
-
while (!this.stop) {
|
|
43
|
-
console.log('fuck you');
|
|
44
|
-
const queueItemSerialized = await lpop('queue:scanner');
|
|
45
|
-
if (!queueItemSerialized) continue;
|
|
46
|
-
const job = JSON.parse(queueItemSerialized);
|
|
47
|
-
if (!this.jobs[job.id]) continue;
|
|
48
|
-
|
|
49
|
-
try {
|
|
50
|
-
console.log(`Running job ${job.id}`);
|
|
51
|
-
await this.jobs[job.id](job.attr);
|
|
52
|
-
console.log(`Finished job ${job.id}`);
|
|
53
|
-
} catch (e) {
|
|
54
|
-
_logger.default.log(e);
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
/**
|
|
59
|
-
* Define a new job
|
|
60
|
-
* @param {string} id
|
|
61
|
-
* @param {function} job
|
|
62
|
-
*/
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
addJob(id, job) {
|
|
66
|
-
_logger.default.log('INFO', 'New queue item has been registered:', id);
|
|
67
|
-
|
|
68
|
-
this.jobs[id] = job;
|
|
69
|
-
}
|
|
70
|
-
/**
|
|
71
|
-
* Add a job to the end of the queue
|
|
72
|
-
* @param {string} id
|
|
73
|
-
* @param {object} job
|
|
74
|
-
*/
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
queueJob(id, attr) {
|
|
78
|
-
const job = {
|
|
79
|
-
id,
|
|
80
|
-
attr
|
|
81
|
-
};
|
|
82
|
-
this.redisClient.rpush('queue:oblectoMaster', JSON.stringify(job));
|
|
83
|
-
}
|
|
84
|
-
|
|
85
|
-
lowPriorityJob(id, attr) {
|
|
86
|
-
const job = {
|
|
87
|
-
id,
|
|
88
|
-
attr
|
|
89
|
-
};
|
|
90
|
-
this.redisClient.rpush('queue:oblectoMaster', JSON.stringify(job));
|
|
91
|
-
}
|
|
92
|
-
/**
|
|
93
|
-
* Add a job to the front of the queue
|
|
94
|
-
* @param {string} id
|
|
95
|
-
* @param {object} job
|
|
96
|
-
*/
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
pushJob(id, attr) {
|
|
100
|
-
const job = {
|
|
101
|
-
id,
|
|
102
|
-
attr
|
|
103
|
-
};
|
|
104
|
-
this.redisClient.rpush('queue:oblectoMaster', JSON.stringify(job));
|
|
105
|
-
}
|
|
106
|
-
|
|
107
|
-
}
|
|
108
|
-
|
|
109
|
-
exports.default = RedisQueue;
|
|
@@ -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 _tmdb = _interopRequireDefault(require("../../../submodules/tmdb"));
|
|
9
|
-
|
|
10
|
-
var _database = _interopRequireDefault(require("../../../submodules/database"));
|
|
11
|
-
|
|
12
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
13
|
-
|
|
14
|
-
var _default = {
|
|
15
|
-
GetTmdbLists: async function (movie) {
|
|
16
|
-
let response = await _tmdb.default.movieLists({
|
|
17
|
-
id: movie.tmdbid
|
|
18
|
-
});
|
|
19
|
-
},
|
|
20
|
-
|
|
21
|
-
/**
|
|
22
|
-
* @return {boolean}
|
|
23
|
-
*/
|
|
24
|
-
GetTmdbCollection: async function (movie) {
|
|
25
|
-
let response = await _tmdb.default.movieInfo({
|
|
26
|
-
id: movie.tmdbid
|
|
27
|
-
});
|
|
28
|
-
if (!response.belongs_to_collection) return false;
|
|
29
|
-
let collectionResponse = await _tmdb.default.collectionInfo({
|
|
30
|
-
id: response.belongs_to_collection.id
|
|
31
|
-
});
|
|
32
|
-
let [Collection, Inserted] = await _database.default.movieSet.findOrCreate({
|
|
33
|
-
where: {
|
|
34
|
-
tmdbid: collectionResponse.id
|
|
35
|
-
},
|
|
36
|
-
defaults: {
|
|
37
|
-
setName: collectionResponse.name,
|
|
38
|
-
overview: collectionResponse.overview
|
|
39
|
-
}
|
|
40
|
-
});
|
|
41
|
-
Collection.addMovie(movie);
|
|
42
|
-
return true;
|
|
43
|
-
},
|
|
44
|
-
GetSetsForMovie: function (movie) {
|
|
45
|
-
this.GetTmdbLists(movie);
|
|
46
|
-
this.GetTmdbCollection(movie);
|
|
47
|
-
}
|
|
48
|
-
};
|
|
49
|
-
exports.default = _default;
|
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
/// <reference types="node" />
|
|
2
|
-
export default class StreamSession extends events.EventEmitter {
|
|
3
|
-
/**
|
|
4
|
-
*
|
|
5
|
-
* @param {File} file
|
|
6
|
-
* @param options
|
|
7
|
-
* @param {Oblecto} oblecto
|
|
8
|
-
*/
|
|
9
|
-
constructor(file: any, options: any, oblecto: any);
|
|
10
|
-
oblecto: any;
|
|
11
|
-
file: any;
|
|
12
|
-
sessionId: any;
|
|
13
|
-
destinations: any[];
|
|
14
|
-
targetFormats: any;
|
|
15
|
-
targetVideoCodecs: any;
|
|
16
|
-
targetAudioCodecs: any;
|
|
17
|
-
format: any;
|
|
18
|
-
videoCodec: any;
|
|
19
|
-
audioCodec: any;
|
|
20
|
-
offset: any;
|
|
21
|
-
inputStream: Stream.PassThrough;
|
|
22
|
-
outputStream: Stream.PassThrough;
|
|
23
|
-
httpHeaders: {
|
|
24
|
-
'Content-Type': string;
|
|
25
|
-
'Accept-Ranges': string;
|
|
26
|
-
};
|
|
27
|
-
httpStatusCode: number;
|
|
28
|
-
timeoutTime: number;
|
|
29
|
-
outputPause(): void;
|
|
30
|
-
outputResume(): void;
|
|
31
|
-
endSession(): void;
|
|
32
|
-
startTimeout(): void;
|
|
33
|
-
timeout: NodeJS.Timeout | undefined;
|
|
34
|
-
addDestination(destination: any): Promise<void>;
|
|
35
|
-
clearTimeout(): void;
|
|
36
|
-
startStream(): Promise<void>;
|
|
37
|
-
getOutputMimetype(): "video/mp4" | "video/mp2t" | "video/video/x-matroska" | "video";
|
|
38
|
-
getFfmpegVideoCodec(): any;
|
|
39
|
-
}
|
|
40
|
-
import events from "events";
|
|
41
|
-
import Stream from "stream";
|